为什么在Python中3 << 1 == 6?
可能重复:
绝对新手指南移位?
任何人都可以解释我那个operator <<或>>
<<
和>>
运算符是位移运算符。 x << 1
移中的所有比特x
到下一个最显著位,由2乘以有效更一般地, x << n
移位的位n个位置。 要理解这个操作是如何工作的,最简单的方法就是查看二进制表示:
3 0000011 = 3
3 << 1 0000110 = 6
3 << 2 0001100 = 12
3 << 3 0011000 = 24
类似地, >>
操作符将位向下移动:
58 0111010 = 58
58 >> 1 0011101 = 29
58 >> 2 0001110 = 14
58 >> 3 0000111 = 7
58 >> 4 0000011 = 3
58 >> 5 0000001 = 1
58 >> 6 0000000 = 0
3,二进制,是11
,左移一位是110
,或十进制6。
把a << b
看作a * (2 ** b)
>>
是为了右移。 把a >> b
想象成a // (2 ** b)
这是一个轮班操作员。
http://docs.python.org/reference/expressions.html#shifting-operations
链接地址: http://www.djcxy.com/p/12565.html上一篇: Why is 3<<1 == 6 in python?
下一篇: What is the difference between MOV and LEA in terms of retrieving an address