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

时间:2015-12-24 10:17:22

标签: python hex bcd

我想将String Entered转换为BCD。

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

正在给我'1000001000010011'。但是我希望它以解压缩的BCD格式读取0010 0000 0001 0011。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

我的朋友,如你所见,更清楚问题,让我们更容易帮助你。

这是我如何解决您的问题

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
<00> 0010 0000 0001 0011是你的输出,这是错误的。所以你的问题不仅仅是4位数表示之间的空格。但是,要解决它:

空间的问题是因为

''.join()
你使用过。你需要

' '.join()

代替。