Python中的二进制补码?

问题描述

不确定如何使用标准库获取所需的内容。那里有一些脚本和软件包可以为您完成转换。

我只是想指出“为什么”以及为什么它不la脚。

bin()不返回二进制位。它将数字转换为二进制字符串。根据python语言定义,前导‘0b’告诉解释器您正在处理一个二进制数。这样,您可以直接使用二进制数字,像这样

>>> 0b01
1
>>> 0b10
2
>>> 0b11
3
>>> 0b01 + 0b10
3

那不是la脚。那很棒。

http://docs.python.org/library/functions.html#bin

箱(x)

将整数转换为二进制字符串。

http://docs.python.org/reference/lexical_analysis.html#integers

以下词汇定义描述了整数和长整数文字

bininteger :: =“ 0”(“ b” |“ B”)bindigit +

bindigit :: =“ 0” | “ 1”

解决方法

Python中的整数以二进制补码存储,对吗?

虽然:

>>> x = 5
>>> bin(x)
0b101

和:

>>> x = -5
>>> bin(x)
-0b101

真是la脚。如何获取python以实数二进制位给我数字,并且没有0b开头?所以:

>>> x = 5
>>> bin(x)
0101
>>> y = -5
>>> bin(y)
1011