在python中>>,<<是什么意思?

What does “>>” and “<<” means in python?

本问题已经有最佳答案,请猛点这里访问。

我试图在这里找到答案,但没有找到。

在python中">>"和"<<"是什么意思?

口译员示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
In [9]: 23 >> 64
Out[9]: 0

In [10]: 23 << 64
Out[10]: 424275113695319687168L

In [11]: 1 >> 2
Out[11]: 0

In [12]: 32132345235423451 >> 2
Out[12]: 8033086308855862

In [13]: 321323452354566423451 >> 2
Out[13]: 80330863088641605862L

In [14]: 2 >> 2
Out[14]: 0

In [15]: 233 >> 2
Out[15]: 58

In [16]: 33 >> 2
Out[16]: 8

In [17]: 3 >> 2
Out[17]: 0

请在此处查找用法https://stackoverflow.com/a/14854406/4436022


这是位移动,就像在C。请阅读这个链接。

基本上,<< 1以一种快速的方式将一个整数乘以2,而>> 1用一个整数除以2。<< n就像做<< 1n次,所以乘以2**n。同样,>> n2**n做整数除法。

从技术上讲,如果你用二进制表示你的数字(就像计算机那样),<<将左边的所有位移位,>>将右边的所有位移位。

因此,当与<<2一起使用时,用二进制(00000011)表示的3变为(000001100)。(00001100)代表12人。同样,3>>1移动(00000011)到(00000001),即1,结果与3 div 2相同。


<<>>分别是二进制左移位和二进制右移位。

左操作数的值按右操作数指定的位数左移。

示例,代码:temp = 14 << 2The variable temp has a value of 56 because 14 (00001110 in binary) shifted left two bits equals 56 (00111000 in binary).

左操作数的值按右操作数指定的位数右移。

示例,代码:temp = -14 >> 2
temp has a value of -4: -14 (11110010 in two's complement binary) shifted right two bits equals -4 (11111100 in two's complement binary).


这些运算符是位移位:

  • >>将位模式右移,即将所有位右移,相当于除以2的幂。

  • <<将位模式向左移动,即将所有位向左移动,等于乘以2的幂:

5>2=1:相当于

101基2右移2=001基2=1

1<2=4:相当于

001基2左移2=100基2=4