“& 0x7fffffff”在“int(time.time()* 1000.0)& 0x7FFFFFFF”中的含义是什么

时间:2017-10-07 22:41:56

标签: python

我有以下价值

start = int(time.time()*1000.0) & 0x7FFFFFFF

& 0x7FFFFFFF的目的是什么?

2 个答案:

答案 0 :(得分:8)

这是一个位掩码。在低级计算中,它是清除寄存器位的有效方法。在这种情况下,除了有符号位之外,掩码具有32位整数集的所有位。有符号位是确定数字是正数还是负数的位。使用此掩码的ANDing(<Target Name="prebuild_cat"> <Exec EchoOff="true" StandardOutputImportance="low" StandardErrorImportance="low" IgnoreExitCode="true" ConsoleToMSBuild="true" Command=' $(GnuSed) &apos;s/^Q(.*)/&quot;&&quot;/&apos; '> </Exec> </Target> )有效地将有符号位设置为0,这意味着该数字将始终为正。

&a && b都为True时,

ab
对于a和b中的每个二进制数字,当Truea & b都为1时,ab

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。