算术移位

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8f322341-e0e3-4d9b-a6d6-426008547a26/Untitled.png

原码算术移位:

左移丢1,运算出错

右移丢1,影响精度

补码算术移位:

左移的前提条件是其原最高有效位与原符号位要相同。

因为只有相同,才不会发生运算出错。

双符号位移位:

高符号位代表真正的符号,低符号位参与移位操作以判断是否发生溢出,如01表示正溢出,10表示负溢出。

逻辑移位

将操作数视为无符号数。

左移右移都补0

循环移位

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/52c55264-aa0e-416f-b13a-9d45226c4f47/image.jpg

不带进位位的循环左移,将最高位进入最低位和标志寄存器C位。

带进位位的循环左移,将最高位进入进位标志寄存器,而进位位依次移入数据的最低位。