如何将解压缩的 BCD 格式的字符串转换为十六进制?

How to convert string to hex in unpacked BCD format?

我想将输入的字符串转换成BCD。

a = '2015'
''.join(format(int(c), '04b') for c in str(int(a, 16)))

给我'1000001000010011'。但我希望它以解压缩的 BCD 格式读取 0010 0000 0001 0011。谁能帮我解决这个问题?

朋友,如你所见,问题越明确,我们就越容易帮助你。

这是我如何解决你的问题

no = "2015"
bcd = " ".join(["0"*(4 - len(bin(int(number))[2:])) + bin(int(number))[2:] for number in no])

print bcd

# 0010 0000 0001 0101

0010 0000 0001 0011 是你的输出,但它是错误的。所以你的问题不仅仅是 4 位数表示之间的空格。但是,要解决它:

空间问题是因为

''.join()

你用过。你需要

' '.join()

相反。