将十六进制字符串转换为字节函数的正确形式

时间:2015-02-06 23:56:39

标签: python python-3.x hex type-conversion

我从函数中得到两个十六进制字符串:

def getHex(hexIn):
    return hex(hexIn >> 8), hex(hexIn & 0xFF)

然后我想这样做:

Hi, Lo = getHex(14290)
Cmd = bytes([0x66, 0x44, 0xA6, Hi, Lo])

但我收到错误:

TypeError: 'str' object cannot be interpreted as an integer

如何将其转换为0x66之类的表单?

1 个答案:

答案 0 :(得分:1)

您报告的错误表明您正在使用python3。

替换:

Cmd = bytes([0x66, 0x44, 0xA6, Hi, Lo])

使用:

Cmd = bytes([0x66, 0x44, 0xA6, int(Hi, 16), int(Lo, 16)])

hex中使用的getHex函数返回字符串。 bytes想要一个整数列表。解决方案是使用int将字符串转换为整数。