C语言左移运算法是不是往地址小的位移动??

 我来答
喵咪咪物语
推荐于2016-01-13 · 分享养猫常识、趣闻等信息
喵咪咪物语
采纳数:859 获赞数:14111

向TA提问 私信TA
展开全部
C语言中按位左移的运算符为<<,其规则如下:
对于操作a<<n,
1 按照二进制值每位向高位(书写上是向左)移动n位;
2 最高位(最左边的)n位舍去;
3 最低位(最右边)填加n个0.
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
cunfu49
2013-05-31 · TA获得超过1528个赞
知道小有建树答主
回答量:829
采纳率:58%
帮助的人:242万
展开全部
C语言左右移算法是对二进制数位的左右移。不关地址的事。
左移一位相当于乘2, 右移一位相当于除 2 。
追问
我的意思是:
---- 地址:1

---- 地址:2

---- 3
0
---- 4
1
---- 5 比如我左移1位这个"01"也就是1,是不是0移到了地址为3的那一位?
追答

你首先要弄对地址, 数据, 存储单元的概念. 否则你总会是模糊不清.

 存储单元: 存放数据的空间, 固定是1字节8 个二进制位数, 好象一排小平房, 8 间一排. 不能多, 也不能少.  左边多出则会自动溢出, 右边缺位则会自动补0..

地址:  计算机寻找数据时用到的地址号, 相当于小平房的门牌号码.

数据 :则好比住在房间里的人家.

我再给你一个形象的图示. 希望会对你有帮助.

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-31
展开全部
位运算是对某个地址中的变量进行运算。不存在地址大小问题,只有高低位的为题。
左移运算就是按位向左边移动二进制数,即向高位移动,丢弃高位,低位补0.
同理,右移运算就是向低位移动,丢弃低位,高位补0。
需要注意的是,如果是一个有符号数,左移运算会丢掉符号位
追问
我的意思是:
---- 地址:1

---- 地址:2

---- 3
0
---- 4
1
---- 5 比如我左移1位这个"01"也就是1,是不是0移到了地址为3的那一位?
追答
您的问题我懂了,不过我不知道移出的那一位是不是跑到别的物理地址上去了,很抱歉哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Isiswier
2015-10-30 · 超过21用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:32.6万
展开全部
不是,往地址高端移动,低位补零,常用来优化乘法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zqy5891
2013-05-31 · TA获得超过139个赞
知道答主
回答量:119
采纳率:0%
帮助的人:81.8万
展开全部
不是 左移是在一个变量内进行的 比如int a=2;对应2进制为00000010 如果左移一位 就变为0000 0100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式