我有以下价值
start = int(time.time()*1000.0) & 0x7FFFFFFF
& 0x7FFFFFFF
的目的是什么?
答案 0 :(得分:8)
这是一个位掩码。在低级计算中,它是清除寄存器位的有效方法。在这种情况下,除了有符号位之外,掩码具有32位整数集的所有位。有符号位是确定数字是正数还是负数的位。使用此掩码的ANDing(<Target Name="prebuild_cat">
<Exec
EchoOff="true"
StandardOutputImportance="low"
StandardErrorImportance="low"
IgnoreExitCode="true"
ConsoleToMSBuild="true"
Command=' $(GnuSed) 's/^Q(.*)/"&"/'
'>
</Exec>
</Target>
)有效地将有符号位设置为0,这意味着该数字将始终为正。
&
和a && b
都为True
时, a
为b
。
对于a和b中的每个二进制数字,当True
和a & b
都为1
时,a
为b
。
Python支持二进制文字,前缀为1
。以下是一些3位数字0b
编辑在一起。
and
答案 1 :(得分:3)
0x7FFFFFFF
是十六进制数(十进制2,147,483,647),表示32位有符号二进制整数的最大正值。
&
符号是bitwise operator,更具体地说是and
运算符。
让我们调用值0x7FFFFFFF
'A'和表达式int(time.time()*1000.0)
'B'。
执行'A' & 'B'
时,如果B的A AND的相应位为1,则输出的每个位为1,否则为0。