如何使用Python文字将整数表示为二进制数?
我很容易就能找到十六进制的答案:
>>> 0x12AF
4783
>>> 0x100
256
和八进制:
>>> 01267
695
>>> 0100
64
在中如何使用文字来表示二进制?
答案摘要
literals.
int('01010101111',2)
表示二进制,但不能使用literal.
0B1100111
.
0o27
或0O27
(第二个字符是字母O)表示octal.
027
语法。发布于 2008-08-16 12:35:36
参考-未来Python的可能性:
从Python2.6开始,您可以使用前缀0b或0B来表示二进制文字
>>> 0b101111
47
您还可以使用新的bin函数来获取数字的二进制表示:
>>> bin(173)
'0b10101101'
文档的开发版本:What's New in Python 2.6
发布于 2008-08-04 18:34:46
>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255
另一种方式。
发布于 2016-05-14 19:58:03
如何在Python语言中表达二进制文字?
它们不是“二进制”字面值,而是“整型字面值”。您可以使用0
后跟B
或b
后跟一系列0和1的二进制格式来表示整数文字,例如:
>>> 0b0010101010
170
>>> 0B010101
21
在Python3 docs中,以下是在Python语言中提供整数文字的方法:
整数文字由以下词法定义描述:
除了可以存储在可用内存中的内容之外,对整型文字的长度没有限制。
请注意,非零十进制数中不允许使用前导零。这是为了消除C风格的八进制字面量的歧义,Python在3.0版之前使用了这种字面量。
整数字面量的一些示例:
7 2147483647 0o177 0b100110111 3 79228162514264337593543950336 0o377 0xDeadBeans 100_000_000_000 0b_1110_0101
版本3.6中的更改:现在允许使用下划线对文字进行分组。
表示二进制的其他方式:
你可以在一个字符串对象中包含0和1,它是可以操作的(尽管在大多数情况下,你可能只需要对整数进行逐位操作)--只需传递int,0和1组成的字符串以及你要转换的基数(2):
>>> int('010101', 2)
21
您可以选择使用0b
或0B
前缀:
>>> int('0b0010101010', 2)
170
如果你将它作为基数传递给0
,如果字符串没有指定前缀,它将假定基数为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'
https://stackoverflow.com/questions/1476
复制相似问题