我正在尝试将代表二进制文件的字符串(例如'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']
答案 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))
更简单,但你不能在开头有一个零的整数。