2.2.2 定点数的移位运算
字数
415 字
阅读时间
2 分钟
常考
左移r位:
一、逻辑移位(无符号整数)
需要将操作数视为无符号整数
- 逻辑移位的规则:
- 左移时,高位移出,低位补0
- 右移时,低位移出,高位补0
- 判断溢出或精度丢失:
- 逻辑左移,若高位的1移出,则发生溢出(超出n位无符号数的表示范围,正常应该是在原真值的基础上再×R(R进制),但由于超出表示范围,将1移出后无法正常显示,所以是发生了溢出)
- 逻辑右移,若低位的1移出,则会丢失精度
二、算术移位(有符号整数)
将操作数视为有符号整数
TIP
由于计算机中的有符号整数都是用补码表示的,所以对于有符号整数的移位操作应采用补码算数移位方式
- 算数移位的规则:
- 左移时,高位移出,低位补0
- 右移时,低位移出,高位补符号位
- 判断溢出或精度丢失:
- 逻辑左移,若左移前后的符号位不同(符号改变),则发生溢出
- 逻辑右移,若低位的1移出,则会丢失精度