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

问题描述:

我想将字符串输入转换成BCD。如何将字符串转换为解压BCD格式的十六进制?

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

给我'1000001000010011'。但我希望它能像解压BCD格式那样读取0010 0000 0001 0011。谁能帮我这个?

+0

你能解释''\ x20 \ x15'到'2015'的编码吗?这不是十六进制,而不是BCD – Saksow

+0

@ Kasramvd基本上我想将这个数字以十六进制的形式输入到微控制器。这个号码是用'a = raw_input(“Enter no。”)输入的' – abhi1610

+0

@Rockybilly我知道这是BCD字符串,但我想将它转换为解压后的BCD。如在数字BCD中。 – abhi1610

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

我这里如何管理您的问题

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() 

改为。

+0

谢谢你的回复。它为我工作。 – abhi1610

+0

如果您需要解释请提 – Rockybilly