您可以使用字符串格式:
>>> number = 123456789 >>> hex = "%X" % number >>> hex '75BCD15'
我不确定你想要什么,但你看过struct
模块了吗?
特定
>>> hex(123456789) '0x75bcd15'
你可以做:
>>> struct.pack('i', 123456789) '\x15\xcd[\x07'
请注意'\x5b' == '['
.
此外,您可以反转字节顺序:
>>> struct.pack('>i', 123456789) '\x07[\xcd\x15'
编辑:我不确定你的意思是"大于长",因为AFAIK在python中的长度是无限的(除了记忆).但是,您可以通过分割和连接来处理更大的整数.例如:
>>> n = 123456789012345678901234567890
目标是:
>>> hex(n) '0x18ee90ff6c373e0ee4e3f0ad2L'
所以:
>>> s = '' >>> while n >= 2**32: ... n, r = divmod(n, 2**32) ... s = struct.pack('>l', r) + s ... >>> s = struct.pack('>l', n) + s
看到s
与上述结果相符hex(n)
:
>>> s '\x00\x00\x00\x01\x8e\xe9\x0f\xf6\xc3s\xe0\xeeN?\n\xd2'