我正在将一些代码从python2.7转换到python 3,并且遇到了十六进制ints的问题。
value = 0x11
hexdump(value)
python2 output: 11
python3 output: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00这个十六进制函数是从替罪羊,并已为我的所有其他六角疑难解答工作。执行chr(0x11)会产生期望值,但是如果没有int类型,许多代偿函数就会被调用为崩溃。
我需要一个方法来获得11作为我的十六进制数据类型int。我试着用
int(value,16) #also tried 0 and 10这方面的问题是,我得到了ValueError:带有基数10:'\x11‘的int()的无效文本
发布于 2019-07-30 01:22:34
0x11是python2和python3中的int。也许您的hexdump函数中有一些字符串处理出错了?字符串在python3中非常不同。
你能把hexdump()的代码贴出来吗
根据@Cukic0d下面的注释,如果您的hexbytes()实际上想要一个字节数组,这应该是工作的:hexdump(bytes([value])) --它将包含值的into的长度-1数组转换为bytes对象并将其传递给hexdump。
https://stackoverflow.com/questions/57263053
复制相似问题