如何将字符串转换为解压BCD格式的十六进制?
问题描述:
我想将字符串输入转换成BCD。如何将字符串转换为解压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()
改为。
+0
谢谢你的回复。它为我工作。 – abhi1610
+0
如果您需要解释请提 – Rockybilly
你能解释''\ x20 \ x15'到'2015'的编码吗?这不是十六进制,而不是BCD – Saksow
@ Kasramvd基本上我想将这个数字以十六进制的形式输入到微控制器。这个号码是用'a = raw_input(“Enter no。”)输入的' – abhi1610
@Rockybilly我知道这是BCD字符串,但我想将它转换为解压后的BCD。如在数字BCD中。 – abhi1610