一. C++中的移位运算
C++提供了>>和<<操作符,这是算术位移
先来复习一下算术位移和逻辑位移的区别
1.右移:
算术右移关心符号位,所以1000 0001右移变成1100 0000
逻辑右移不关心符号位,所以1000 0001右移变成0100 0000
2.左移
都不关心符号位,所以1000 0001左移都变成0000 0010
二. int(-1) >> 1
因为是算术右移,所以关心符号位,所以右移1位当然还是负数
首先数字在计算机里是用补码来保存的,所以-1的