带符号数的移位

带符号数的移位操作
    算术移位时应保持数的符号位不变,而数值的大小则要发生变化。左移一位相当于该数乘以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

posted @ 2020-04-08 22:25  dust--  阅读(2057)  评论(0编辑  收藏  举报