我想转换从文件中读取的十六进制字符串 “ 0xbffffe43”为以小尾数“ \ x43 \ xfe \ xff \ xbf”编写的值。
我尝试使用struct.pack,但它需要一个有效的整数。每当我尝试转换十六进制函数时,它将转换为43。我需要此来分配内存利用。
我可以使用python 2.7
a = "0xbffffe43"
...
out = "\x43\xfe\xff\xbf"
这是我想要实现的目标
答案 0 :(得分:1)
您可以尝试做:
my_hex = 0xbffffe43
my_little_endian = my_hex.to_bytes(4, 'little')
print(my_little_endian)
答案 1 :(得分:1)
您输入的是 string 。您可以使用int
和基数将其转换为整数。
>>> a = "0xbffffe43"
>>> import struct
>>> out = struct.pack("<I",int(a,16))
>>> out
b'C\xfe\xff\xbf'
使用b
前缀是因为解决方案已通过python 3进行了测试。但是它也可以作为python 2使用。
C
这样打印,因为python解释可打印字符。但是
>>> b'C\xfe\xff\xbf' == b'\x43\xfe\xff\xbf'
True
请参阅: