c语言中位运算的左位移右位移都是什么意思

 我来答
妹纸们的小傻瓜
2018-05-22 · TA获得超过713个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

假设0010
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0。
0010<<2 就是1000 实际是做的*4。
1000>>2 计算 0010 实际做的是/4。

位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。
位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。具体移位规则如下所示。

位移位运算符的优先级如下:
·算术运算符 优先于 位移位运算符 优先于 关系运算符
·位移位运算符是同级别的,结合性是自左向右
例如,设无符号短整型变量a为0111(对应二进制数为0000000001001001),
则:a<<3 结果为01110(对应二进制数为0000001001001000),a不变
a>>4 结果为04 (对应二进制数为0000000000000100),a不变
又如,设短整型变量a为-4(对应二进制数为1111111111111100),
则:a<<3 结果为-32(对应二进制数为1111111111100000),a不变
a>>4 结果为-1(对应二进制数为1111111111111111),a不变

ychw365
推荐于2016-08-31 · TA获得超过107个赞
知道答主
回答量:114
采纳率:0%
帮助的人:116万
展开全部
呵呵 假设0010
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0
0010<<2 就是1000 实际是做的*4
1000>>2 计算 0010 做的的/4
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏末雪人
2010-04-23 · TA获得超过2823个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:221万
展开全部
说的是<<和>>吧。
<<是左移,右边补零。比如a=a<<2,假如a=00011100B,左移以后就是01110000B.
>>是右移,无符号数左边补零;有符号数正数补零,负数补1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_小_苏
2010-04-23 · TA获得超过343个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:212万
展开全部
0001 左移1位的话就变成 0010
右移1位 0000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
A一样的男人
2010-04-23 · TA获得超过130个赞
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:227万
展开全部
i++ ++i吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式