如何将解压缩的 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()
相反。
我想将输入的字符串转换成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()
相反。