的意思是我有以下值什么是 “&0x7FFFFFFF的” 在 “INT(了time.time()* 1000.0)0x7FFFFFFF的”
start = int(time.time()*1000.0) & 0x7FFFFFFF
什么是& 0x7FFFFFFF
的目的是什么?
的意思是我有以下值什么是 “&0x7FFFFFFF的” 在 “INT(了time.time()* 1000.0)0x7FFFFFFF的”
start = int(time.time()*1000.0) & 0x7FFFFFFF
什么是& 0x7FFFFFFF
的目的是什么?
这是一个位掩码。在低级计算中,这是清除寄存器位的有效方法。在这种情况下,掩码的所有位都是32位整数集,除了有符号位。有符号位是确定数字是正数还是负数的位。使用此掩码进行与(&
)的有效设置,将有符号位设置为0,这意味着该数字总是正数。
a && b
是True
当a
和b
都是True
时。
a & b
是1
当a
和b
都是1
时,对于a和b中的每个二进制数字。
Python支持二进制文字,前缀为0b
。这里有一些3位数字and
在一起。
>>> 0b101 & 0b110 == 0b100
True
>>> 0b011 & 0b111 == 0b011
True
>>> 0b011 & 0b110 == 0b010
True
0x7FFFFFFF
是一个十六进制数(2,147,483,647,十进制数),表示32位带符号二进制整数的最大正值。
&
符号是bitwise operator,更具体地是and
运营商。
我们称之为值0x7FFFFFFF
'A'和表达式int(time.time()*1000.0)
'B'。
当你做'A' & 'B'
,输出的每一位为1,如果A和B的相应位为1,否则则为0
它来自随机数发生器吗? – ayhan
屏蔽具有0x7FFFFFFF的整数可确保无法对32位数量进行签名(最高有效位为0)。 – Neitsa
这意味着你只想保留结果值的最后31位,所以它就像模2^31中的计算一样。 – trincot