嗨我正在学习pySerial模块,所以hex到ascii是它的基础。
到目前为止,我有以下概念。
字节字符串:“\ xde”
字节数组:
>>> bytearray('\xde')
bytearray(b'\xde')
>>> a = bytearray('\xde')
>>> a[0]
222
>>> hex(a[0])
'0xde'
十六进制字符串:'\ xde'
十六进制:0xde
正常表示:de
现在我需要的是Hex String to Hex,反之亦然。
Hex或Hex String to Normal表示。
我希望我能得到最简单的答案。
更新
我认为除了字符串操作之外我得到了一个初始答案。 但这看起来很脏。
>>> hex(int(binascii.hexlify('\xde'),16))
'0xde'
答案 0 :(得分:1)
让我重新写一点。
你有一个字节(比如b
,整数值为222(十进制)或de(十六进制)或二进制为276或二进制为10111110.
其十六进制字符串表示形式为'0xde'
以下初步说明是相同的:
b = 222
b = 0xde
以下是转换(例如s
是字符串,s='0xde'
,即十六进制字符串表示形式)
s = hex(b)
b = int(s, 16)
根据评论编辑:
如果确实希望能够接受输入\xde
以及0xde
,您可以这样做:
b = int('0' + s[1:] if (s[0] == '\\') else s, 16)
或直接
b = int('0' + s[1:], 16)
如果你确定你永远不会得到奇怪的输入