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

499 投票
10 回答
688057 浏览
提问于 2025-04-17 10:37

我想把一个二进制的字符串(就是用0和1组成的数字)转换成一个整数,像这样:

>>> '11111111'.fromBinaryToInt()
255

请问在Python中有没有办法做到这一点呢?

10 个回答

38

另一种方法是使用bitstring模块:

>>> from bitstring import BitArray
>>> b = BitArray(bin='11111111')
>>> b.uint
255

需要注意的是,无符号整数(uint)和有符号整数(int)是不同的:

>>> b.int
-1

你的问题实际上是在询问无符号整数的表示,这一点非常重要。

bitstring模块并不是必须的,但它提供了很多高效的方法,可以将输入转换成比特(即二进制位)以及从比特转换成其他形式,还可以对它们进行操作。

53

在Python的交互界面里,直接输入0b11111111就可以了:

>>> 0b11111111
    255
938

你可以使用内置的 int() 函数,并把输入数字的进制作为参数传进去,比如对于二进制数字,你就传 2

>>> int('11111111', 2)
255

这里有 Python 2Python 3 的文档。

撰写回答