在 python 中,0b01001011 将是 75,这也适用于 Two's Complement。但是 0b10101001 将是 169,而在二进制补码中,它将是 -87。如何表达二进制补码字面量?
问问题
744 次
2 回答
3
您用负号表示负二进制文字,如下所示:
>>> -0b1010111
-87
Python 的整数不是固定宽度的,因此没有“二进制补码”。
于 2012-05-13T03:56:51.293 回答
0
您可以使用二进制分数包。这个包TwosComplement
用二进制整数和二进制分数实现。您可以将二进制分数字符串转换为其二进制补码,反之亦然
例子:
>>> from binary_fractions import TwosComplement, Binary
>>> int(Binary("01001011"))
75
>>> int(Binary("10101001"))
169
>>> TwosComplement("10101001").to_float()
-87.0
PS:无耻插件,我是这个包的作者。
于 2021-07-16T22:16:44.667 回答