Python 移位操作 与 C移位操作

在C语言中
左移: m << n
  • m<

左移是不考虑符号位的,(带着符号位一起)直接移动。
所以在左移中负数左移可能变为正数,正数左移可能变成负数

右移:m>>n
  • m>>n表示把m向右移动n位,右移n位时,最右边的n位将被抛弃,最左边空出来的位置使用符号位填充。

在Python中

Python 移位操作 与 C移位操作_第1张图片

  • 右移n位可以定义为除以pow(2,n),
  • 左移n位可以定义为乘以pow(2,n);
  • 对于普通整数是没有溢出检查的,因此若结果的绝对值大于等于pow(2,31), 这个运算会截掉相应的位并且符号位也在移位处理之列.
参考:

https://www.cnblogs.com/zhengyun_ustc/archive/2009/10/14/shifting.html

你可能感兴趣的:(Python,移位操作,Python,C)