关于C++里的位移运算

Deadly 提交于 2019-11-28 18:22:00

 

左移就是指的是逻辑移位,右端补0,而右移则是算术移位,最高位补符号位,是负数就补1是正数就补0.

正数左移有正有负:

负数左移也是有正有负

右移则稳定保持符号。

所以左移才叫逻辑位移嘛,因为我不管你符号位,移上去一个1就是一个1.

所以右移叫算数位移:你不管怎么移,我始终保持正负号不变。

最后一点,考虑左右移动时的结果应该从补码来考虑,补码移动完成之后,再还原成原码,再换成整数。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!