在python中,0b01001011将是75,这也适用于Two's Complement。但是0b10101001将是169,其中与Two's Complement一样,它将是-87。我如何表达Two's Complement二进制文字?
答案 0 :(得分:3)
您使用负号表示负二进制文字,如下所示:
>>> -0b1010111
-87
Python的整数不是固定宽度,因此没有“二进制补码”。
答案 1 :(得分:0)
您可以使用 Binary fractions 包。这个包用二进制整数和二进制分数实现 TwosComplement
。您可以将二进制分数字符串转换为二进制补码,反之亦然
示例:
>>> from binary_fractions import TwosComplement, Binary
>>> int(Binary("01001011"))
75
>>> int(Binary("10101001"))
169
>>> TwosComplement("10101001").to_float()
-87.0
PS:无耻的插件,我是这个包的作者。