对于有符号数的移位称为算术移位,对于无符号数的移位称为逻辑移位。
对于正数的算术移位,且不管是何种机器数【原码、反码、补码】,移位后出现的空位全部填0。
而对于负数的算术移位,机器数不同,移位后的规则也不同。
对于负数的原码:
空位填“0”
对于负数的反码:
空位填“1”
对于负数的补码:
左移填“0”,即低位填0。
右移填“1”,即高位填1。
PS:对于负数的移位,符号位永远不变。【移位时不能动符号位】
逻辑移位的规则是:“不论左移右移,空位全部填0”。
首先,我们要明白,在计算机中的所有加减乘除操作都是用补码进行的。【重要】
对于补码的减法,可以看做是加一个负数。
例如:
求A - B可以看成求“A + (-B)”。
因此,我们要求[A]补 - [B]补,就等于求“[A]补 + ([-B]补)”。
而[-B]补等于[B]补连通符号位在内,所有位取反,末位加1得到。
1.已知A = 0.1011,B=-0.010