将十进制转换为十六进制python

时间:2009-11-10 15:00:42

标签: python networking decimal hex

我在python中构建服务器,我需要将十进制值转换为十六进制,如下所示:

假设数据包以4个字节开始,它定义了数据包长度: 00 00 00 00 如果len(数据包)= 255,我们将发送: 00 00 00 ff

现在我的问题是,有时数据包大于256,例如336,那么它将是: 00 00 01 50

我不知道如何在python中做到这一点,我将非常感谢任何帮助。 谢谢 !

2 个答案:

答案 0 :(得分:8)

>>> import struct
>>> struct.pack(">i", 336)
'\x00\x00\x01P'

struct module打包并将python值解压缩为字节。 ">i"格式表示big-endian 4字节整数。

答案 1 :(得分:3)

怎么样?
"%0.8x" % data

样品:

>>> print "%0.8x" % 366
0000016e

>>> print "%0.8x" % 336
00000150