打印十六进制字符串

1 投票
1 回答
7134 浏览
提问于 2025-04-16 06:26
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 个回答

3
>>> 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'

撰写回答