C语言中的左移和右移?

C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一... C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一样啊,怎模解释呢??请教高手! 展开
 我来答
qiaochengqiang
2007-12-24 · TA获得超过111个赞
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
0111右移一位是把最后一位的1去掉,左边补个0,得0011,转换为十进制是3,这是正确的。并不等同于除以2
WXD110114dccd8
推荐于2017-09-09 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.6万
采纳率:43%
帮助的人:7692万
展开全部
移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右移位操作符的运算并不对称。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
温启勇思
2020-01-16 · TA获得超过3841个赞
知道大有可为答主
回答量:3103
采纳率:29%
帮助的人:227万
展开全部
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0,移5和移6没区别
<<后面的数字表示移多少位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月影低徊
2007-12-24 · TA获得超过1301个赞
知道小有建树答主
回答量:795
采纳率:0%
帮助的人:891万
展开全部
移位只是对int型进行的操作。如果按是int型的计算,结果是正确的 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
姬凯乙清宁
2019-07-30 · TA获得超过3557个赞
知道小有建树答主
回答量:3072
采纳率:31%
帮助的人:270万
展开全部
你优先级没注意,<<的优先级比
^
的高,所以应该先算b<<2
,为00011000;
再算与a异或运算就可以了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式