移位运算包含算术运移位和逻辑移位,算术移位下面主要讲,逻辑移位就是无符号数的移位,无论向左还是向右缺失的空位用‘0’来补充。
1.对于正数
无论是左移还是右移,空位直接补‘0’,和逻辑移位思路相同。
2.对于负数(三种情况)
①原码
保持符号位不变,向左向右都是补‘0’。
②反码
保持符号位不变,向左向右都是补‘1’。
③补码
保持符号位不变,向左补‘0’, 向右补‘1’。
//这里反码补 1,是应为原码变反码每位要取反,当反码再变回原码的时候,正好 1 变成 0。
//同理补码也正是这个道理,补码最左边部分与反码相同要补 1 ,而右边因为加一的缘故和原码相同,所以补 0 。