C语言中的左移和右移?
C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一...
C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一样啊,怎模解释呢??请教高手!
展开
5个回答
展开全部
移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右移位操作符的运算并不对称。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0,移5和移6没区别
<<后面的数字表示移多少位
<<后面的数字表示移多少位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
移位只是对int型进行的操作。如果按是int型的计算,结果是正确的 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你优先级没注意,<<的优先级比
^
的高,所以应该先算b<<2
,为00011000;
再算与a异或运算就可以了!
^
的高,所以应该先算b<<2
,为00011000;
再算与a异或运算就可以了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询