C语言:移位运算
左移 <<
- i << j
- i中所有的位向左移动j个位置,而右边填入0
- 所有小于int的类型,移位以int的方式来做,结果是int
- x <<= 1等价于x *= 2
- x <<= n等价于 x *= 2的n次方
右移 >>
- i >> j
- i中所有的位向右移j位
- 所有小于int的类型,移位以int的方式来做,结果是int
- 对于unsigned的类型,左边填入0
- 对于signed的类型,左边填入原来的最高位(保持符号不变)
- x >>= 1 等价于 x /= 2
- x >>= n 等价于 x /= 2的n次方
网友评论