C++ 逻辑右移、算术右移

逻辑左移=算数左移,右边统一添0 

逻辑右移,左边统一添0 

算数右移,左边添加的数和符号有关,左侧添加符号位。即正数添0,负数添1。

如果负数要进行逻辑右移,可将其转换为unsigned类型。

 

左移运算符(<<)

左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。

右移运算符(>>)

对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。

posted @ 2021-01-15 22:06  zeroPatrick  阅读(2811)  评论(2编辑  收藏  举报