为什么~0b1在Python 2.7中打印出-2?

时间:2017-05-18 18:19:17

标签: python python-2.7 binary byte ones-complement

我(有点)熟悉一个补充,但我可以使用关于Python 2.7的复习。

为什么~0b1会打印到-2

据我所知,一个补码将1s转换为0,反之亦然。我希望~0b1能够打印0b00

print会自动将字节文字转换为某种形式的int吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

0b1只是编写0b0000...01(整数1)的另一种方式。使用~,您将获得逐位补充1 -> 00 -> 1(包括符号位),以便获得:

0b111....10

-2