带符号数的移位
带符号数的移位操作
算术移位时应保持数的符号位不变,而数值的大小则要发生变化。左移一位相当于该数乘以2,而右移一位相当于该数除以2。
1、原码的移位规则
不论正数还是负数,在左移或右移时,符号位均不变,空出位一律以0补入。
负数的原码移位前后结果为:
左移:移位前有 1 X1 X2 ··· Xn−1 Xn
移位后有 1 X2 X3 ··· Xn 0
右移:移位前有 1 X1 X2 ··· Xn−1 Xn
移位后有 1 0 X1 ··· Xn−2 Xn-1
2、补码的移位规则
(1)正数
符号位不变,不论左移还是右移,空出位一律以0补入。
(2)负数
符号位不变,左移后的空出位补0,右移后的空出位补1。
左移:移位前有 1 X1 X2 ··· Xn−1 Xn
移位后有 1 X2 X3 ··· Xn 0
右移:移位前有 1 X1 X2 ··· Xn−1 Xn
移位后有 1 1 X1 ··· Xn−2 Xn-1