如何将二进制的字符串表示转换为二进制?

时间:2016-03-10 11:34:40

标签: python string type-conversion

我正在尝试将代表二进制文件的字符串(例如'000','00','010'或'00001'转换为二进制文件(000,00,010和00001) 我尝试了以下代码,但它删除了左侧的零。

binaries=['000','00','010,'00000']
resultArray = []
    for binary in binaries:
        resultArray.append(int(binary))
print resultArray

结果是

[0, 0, 10, 0]

而不是所需的

[000, 00, 010, 00000]

我也尝试过:

binaries=['000','00','010,'00000']
resultArray = []
    for binary in binaries:
        resultArray.append(format(int(binary), '02x'))
print resultArray

然后我得到以下结果

['00', '00', '1010', '00']

2 个答案:

答案 0 :(得分:2)

之所以发生这种情况是因为int()specifying基数的(可选)第二个参数,默认为10.所以基本上,你将0100(百)转换为{{1 (再次,一百)。

尝试:

100

int(binary_string, 2)

由于bin(number) 000之间没有区别,所以前导零点的含义通常有点困难。换句话说,没有:

0

[000, 00, 010, 00000]

您可以尝试做的是:

[0, 0, 2, 0] (list of numbers, read by humans in base 10)

答案 1 :(得分:1)

您无法创建所需的列表。你尝试的时候整数没有前面的零。在你的号码的开头有零的唯一方法是把它作为一个字符串,但这就是你已经拥有的,所以我不认为我有必要向你展示如何将字符串转换为字符串。如果零并不重要,那么转换就完成了工作。你可以使resultArray = list(map(int, binaries))更简单,但你不能在开头有一个零的整数。