你如何在Python中表达二进制文字?
它们不是“二元”文字,而是“整数文字”。 您可以使用二进制格式表示整数文字,其中包含0,后跟bin或int,后跟一系列零和1,例如:
>>> 0b0010101010
170
>>> 0B010101
21
从Python 3文档中,这些是在Python中提供整数文字的方法:
整数文字由以下词汇定义描述:
bin
除了什么之外,整数文字的长度没有限制 可以存储在可用内存中。
请注意,不允许使用非零十进制数的前导零。 这是为了消除C语言的八进制文字,这是Python 在3.0版之前使用。
整数文字的一些例子:
bin
在版本3.6中更改:现在允许下划线用于文字分组。
表达二进制的其他方式:
你可以在一个可以操作的字符串对象中使用0和1(尽管在大多数情况下你可能只对整数进行按位操作) - 只需传入0和0的字符串以及要转换的基数(2)):
>>> int('010101', 2)
21
您可以选择使用bin或int前缀:
>>> int('0b0010101010', 2)
170
如果以bin作为基础传递它,如果字符串未指定前缀,则它将假定为10:
>>> int('10101', 0)
10101
>>> int('0b10101', 0)
21
从int转换回人类可读二进制文件:
您可以将整数传递给bin以查看二进制文字的字符串表示形式:
>>> bin(21)
'0b10101'
你可以结合bin和int来回走动:
>>> bin(int('010101', 2))
'0b10101'
如果要使用前面的零的最小宽度,也可以使用格式规范:
>>> format(int('010101', 2), '{fill}{width}b'.format(width=10, fill=0))
'0000010101'
>>> format(int('010101', 2), '010b')
'0000010101'