如何在Python中将整数转换为'二进制'?

3 投票
3 回答
2646 浏览
提问于 2025-04-15 20:21

在Ruby中,我是这样做的

asd = 123
asd = '%b' % asd # => "1111011"

3 个回答

0

正如Felix提到的,bin()这个函数是可以用的。为了更全面,你也可以反向操作。

>>> int('01101100',2)
108
>>> bin(108)
'0b1101100'
>>> bin(108)[2:]
'1101100'
7

在Python 2.6及以上版本中,可以使用bin()这个函数:

asd = bin(123) # => '0b1111011'

如果你想去掉开头的0b,可以直接用bin(123)[2:]来获取。

bin(x)
这个函数的作用是把一个整数转换成二进制字符串。返回的结果是一个有效的Python表达式。如果x不是Python的整数对象,它需要定义一个__index__()方法,这个方法要返回一个整数。

这个功能在2.6版本中新增。

7

你还可以进行字符串格式化,这样就不会包含 '0b' 了:

>>> '{:b}'.format(123)            #{0:b} in python 2.6
'1111011'

撰写回答