在学习左移与右移之前,我们首先要学习两种移位运算:逻辑移位和算数移位。
逻辑位移:移出去的位丢弃,空缺位用0补充。
算数位移:移出去的位丢弃,空缺位用符号位补充。
左移
左移是高位溢出,低位补零。
例子:
5<<1
0000 0101
变为 0000 1010
右移
右移分为逻辑右移和算数右移
逻辑右移:高位补0,低位溢出。
0101 1010 >> 3
0000 1011
算数右移:高位补符号位,低位溢出(有符号数)。
1010 1101 >> 3
1111 0101
0111 1101 >> 3
0000 1111
在进行左移和右移操作时,要注意右移有逻辑右移和算数右移两种,选择正确的右移方式。