我们如何在Python中表达二进制文字?

时间:2020-03-05 18:37:35  来源:igfitidea点击:

如何使用Python文字将整数表示为二进制数?

我很容易找到十六进制的答案:

>>> 0x12AF
4783
>>> 0x100
256

和八进制:

>>> 01267
695
>>> 0100
64

我们如何使用文字在Python中表示二进制?

答案摘要

  • Python 2.5及更早版本:可以使用int('01010101111',2)而不是文字来表达二进制。
  • Python 2.5和更早版本:无法表达二进制文字。
  • Python 2.6 beta:我们可以这样做:0b1100111或者0B1100111
  • Python 2.6 beta:还将允许" 0o27"或者" 0O27"(第二个字符为字母O)表示一个八进制。
  • Python 3.0 beta:与2.6相同,但不再允许较旧的027语法适用于八进制。

解决方案

回答

据我所知,直到2.5,Python仅支持十六进制和八进制文字。我确实找到了一些有关在将来的版本中添加二进制文件的讨论,但没有明确的定义。

回答

我很确定这是由于Python 3.0中的更改而导致的事情之一,也许bin()与hex()和oct()一起使用了。

编辑:
lbrandy的答案在所有情况下都是正确的。

回答

>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

其他方式。

回答

供参考,未来Python的可能性:
从Python 2.6开始,我们可以使用前缀0b或者0B表示二进制文字:

>>> 0b101111
47

我们还可以使用新的bin函数来获取数字的二进制表示形式:

>>> bin(173)
'0b10101101'

文档的开发版本:Python 2.6的新增功能