Python 结构包镜像
Python struct pack mirroring
下面是我的代码示例:
import struct
data = []
for i in range(5):
firmware_addr = 128*i
p = struct.pack('>I', firmware_addr)
print("Addr: {0}, pack: {1}".format(firmware_addr, p))
输出:
Addr: 0, pack: b'\x00\x00\x00\x00'
Addr: 128, pack: b'\x00\x00\x00\x80'
Addr: 256, pack: b'\x00\x00\x01\x00'
Addr: 384, pack: b'\x00\x00\x01\x80'
Addr: 512, pack: b'\x00\x00\x02\x00'
它工作正常。但我需要这样的输出:
Addr: 0, pack: b'\x00\x00\x00\x00'
Addr: 128, pack: b'\x80\x00\x00\x00'
Addr: 256, pack: b'\x00\x01\x00\x00'
Addr: 384, pack: b'\x80\x01\x00\x00'
Addr: 512, pack: b'\x00\x02\x00\x00'
我该怎么做?
好的,这比我想象的要容易。
解决方案:
p[::-1]
下面是我的代码示例:
import struct
data = []
for i in range(5):
firmware_addr = 128*i
p = struct.pack('>I', firmware_addr)
print("Addr: {0}, pack: {1}".format(firmware_addr, p))
输出:
Addr: 0, pack: b'\x00\x00\x00\x00'
Addr: 128, pack: b'\x00\x00\x00\x80'
Addr: 256, pack: b'\x00\x00\x01\x00'
Addr: 384, pack: b'\x00\x00\x01\x80'
Addr: 512, pack: b'\x00\x00\x02\x00'
它工作正常。但我需要这样的输出:
Addr: 0, pack: b'\x00\x00\x00\x00'
Addr: 128, pack: b'\x80\x00\x00\x00'
Addr: 256, pack: b'\x00\x01\x00\x00'
Addr: 384, pack: b'\x80\x01\x00\x00'
Addr: 512, pack: b'\x00\x02\x00\x00'
我该怎么做?
好的,这比我想象的要容易。 解决方案: p[::-1]