帶符號數的移位操作
算術移位時應保持數的符號位不變,而數值的大小則要發生變化。左移一位相當於該數乘以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