我想把一个576位的二进制数转换成hex,所以我编写了下面的python脚本。虽然写作很有趣,但我相信它是巨大的,丑陋的,而且很可能是不必要的复杂。我想知道是否有新的更有效的方法来使用一些内置的python。我使用任何我能找到的方法的问题是保留前导零,因为这是绝对关键的。下面是我用来测试的输入和输出以及我编写的代码。在
输入:000011110111101011000101
输出:
^{pr2}$
代码file = open("binforhex.txt",'r')
stream = file.read()
num = []
byte = []
hexOut = []
n = 0
print stream
for x in stream:
num.append(x)
while n < len(num):
byte.append(int(num[n]))
if n > 1:
if (n + 1) % 4 == 0:
if cmp([0, 0, 0, 0],byte) == 0 :
hexOut.append('0')
elif cmp([0, 0, 0, 1],byte) == 0 :
hexOut.append('1')
elif cmp([0, 0, 1, 0],byte) == 0 :
hexOut.append('2')
elif cmp([0, 0, 1, 1],byte) &