假设我们在Python中有一个64-bits
负数int
。
x = -9223372036854775808 # in binary: 1000 0000 ... [48 zeroes more] ... 0000 0000
现在,我想将此数字转换为正数并保留其二进制表示形式。对我来说,最快的方法是:
x = x & 0x0FFFFFFFFFFFFFFFF # in binary: 0 1000 0000 ... [48 zeroes more] ... 0000 0000
因此,基本上,我在0
前面增加了一个64-bits
,现在Python认为它是一个positive int
。
这是否意味着现在我正在使用65-bits
正数并且确实不适合Python的64-bits word
,或者我只是将数字转换为它的无符号表示,所以它只是适合Python 64-bits
的正64-bits word
数字?