打印十六进制字符

时间:2010-11-02 15:35:47

标签: python hex string-formatting

print 'Payload: ', struct.unpack('%dB'%len(payload), payload)
print '%08x (%d bits) DATA: ' % (identifier, width), repr(payload)

这两个代码语句生成以下结果:

Payload: (125, 255, 255, 125, 255, 255, 125, 255)
18feef00 (29 bits) DATA: '}\xff\xff}\xff\xff}\xff'

我想要一个具有正确十六进制数据的最终字符串,如下所示:

7dffff7dffff7dff

1 个答案:

答案 0 :(得分:2)

>>> tup = (125, 255, 255, 125, 255, 255, 125, 255)
>>> "".join('%02x' % i for i in tup)
'7dffff7dffff7dff'

因此,在您的情况下,您可以使用struct.unpack构造元组,然后使用"".join()来构造字符串。

目前还不清楚你的开头是什么,但是如果它是字符串'}\xff\xff}\xff\xff}\xff'那么这就没有了元组:

>>> s = '}\xff\xff}\xff\xff}\xff'
>>> "".join('%02x' % ord(c) for c in s)
'7dffff7dffff7dff'