C语言逻辑移位与算术移位

逻辑移位与算术移位

符号位参与移位

1. 左移

逻辑左移和算术左移一致,都是高位移出,低位补0
注:算术左移可能会导致负数移位成整数,如
1011 1111 1111 1111 (-16385)
左移一位后,变为
0111 1111 1111 1110 (32766)
除了发生此种情况外,算术右移可实现:右移n位实现乘以2^(-n)的功能。

2. 右移

(1)算术右移
高位补符号位,低位移出
(2)逻辑右移
高位补0,低位移出

猜你喜欢

转载自blog.csdn.net/weixin_40164968/article/details/84935628
今日推荐