4.2 移位运算

移位运算移动模式中的位,改变位的位置。
方向可以向左或向右移动,位数不限。
移位运算分为两类:

  • 逻辑移位运算
  • 算术移位运算

4.2.1 逻辑移位运算

逻辑移位运算应用于不带符号位的模式。
逻辑移位分为两类:逻辑移位和循环移位。

逻辑移位:移入填0,移出丢弃。

循环移位:没有增加和丢弃,是一种循环。

4.2.2 算术移位运算

算术移位运算应用于二进制补码表示的带符号整数。
算术右移相当于对整数除以2;算术左移相当于对整数乘以2。
这些运算不应该改变符号位。

算术右移

符号位复制向右移,符号保持不变,最右位移出丢弃。

算术左移

右边移入0,最左位丢弃。有可能产生溢出或正负颠倒(如果符号位发生变化)