我在python中构建服务器,我需要将十进制值转换为十六进制,如下所示:
假设数据包以4个字节开始,它定义了数据包长度: 00 00 00 00 如果len(数据包)= 255,我们将发送: 00 00 00 ff
现在我的问题是,有时数据包大于256,例如336,那么它将是: 00 00 01 50
我不知道如何在python中做到这一点,我将非常感谢任何帮助。 谢谢 !
答案 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