我需要将一个四位数的字符串拆分为两个十六进制数字。
例如:string =“ ABCD”
预期输出= 0xAB 0xCD
我尝试了以下语句:
>>data = "0000"
>>[byte1, byte2] = [data[:2], data[2:]]
>>byteInt = int(byte1,16)
>>byteHex = format(byteInt,'0#4x')
>>print byteHex
我在“ byteHex = format(byteInt,'0#4x')”行收到错误“ ValueError:无效的转换规范”
最佳答案
由于您未指定任何对齐方式,因此不需要格式说明中的前导零:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill
以对齐方式为条件:
>>> byteHex = format(byteInt,'#4x')
>>> byteHex
' 0x0'
要在格式规范中使用可选的
fill
,应指定对齐方式:>>> byteHex = format(byteInt,'0>#4x') # left align
>>> byteHex
'0x00'