将十进制转换为十六进制 Python
我正在用Python搭建一个服务器,我需要把十进制的数值转换成十六进制,像这样:
假设数据包开始时有4个字节,用来定义数据包的长度:
00 00 00 00
如果数据包的长度是255,那我们发送的就是:
00 00 00 ff
现在我的问题是,有时候数据包的长度会超过256,比如336,那它应该是:
00 00 01 50
我不知道怎么在Python中做到这一点,任何帮助都非常感谢!
2 个回答
3
那这个呢
"%0.8x" % data
示例:
>>> print "%0.8x" % 366
0000016e
>>> print "%0.8x" % 336
00000150
8
>>> import struct
>>> struct.pack(">i", 336)
'\x00\x00\x01P'
struct
模块可以把Python中的值打包成字节,或者把字节解包成Python的值。这里的格式">i"
表示的是大端格式的4字节整数。