我试图在这里找到答案,但没找到。
“>>”是什么和“<<”在python中意味着什么?
口译员的例子:
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
答案 0 :(得分:1)
<<
和>>
分别是二进制左移和二进制右移。
左操作数值向左移动右操作数指定的位数。
示例,代码:temp = 14 << 2
The 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).
答案 1 :(得分:1)
位移,与C一样。请阅读this链接。
基本上<< 1
快速将整数乘以2而>> 1
将整数除以2。<< n
就像执行<< 1
n
次,因此它乘以2**n
。同样,>> n
按2**n
进行整数除法。
从技术上讲,如果您在binary中表示您的号码(与计算机一样),<<
会移动左侧的所有位,>>
会将所有位向右移位。
因此,当使用<<2
时,由(00000011)以二进制表示的3变为(00001100)。 (00001100)是12的表示。再次,3>>1
将(00000011)移位到(00000001),即{{1与1
相同的结果。
答案 2 :(得分:0)
这些运算符是位移的:
>>
将位模式向右移动 - 即将所有位向右移动 - 相当于除以2的幂
<<
将位模式向左移位 - 即将所有位向左移动 - 相当于乘以2的幂:
5&gt;&gt; 2 = 1: 相当于
101碱基2右移2 = 001碱基2 = 1
和
1&lt;&lt; 2 = 4: 相当于
001碱基2左移2 = 100碱基2 = 4