C语言:移位运算

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次方

你可能感兴趣的:(C语言:移位运算)