我有一个文件,其中包含小端格式的无符号 64 位整数,如下所示
0100 0000 0000 0000
0200 0000 0000 0000
0300 0000 0000 0000
3655 9d80 0f00 0000
7a64 dae3 0900 0000
060f fa3f 0600 0000
我正在寻找一种方法来读取这些数字,然后将它们转换为十进制等值
到目前为止我的代码如下:
filename = "C:\\RainbowTables\\md5_loweralpha-numeric#1-7_0_2x50_0.rt"
blocksize = 8
with open(filename, "rb") as f:
startpoint = f.read(blocksize)
string = ""
for ch in startpoint:
string += hex(ord(ch))
print string
这给了我第一个数字的以下输出
0x10x00x00x00x00x00x00x0
我一直在研究如何为此使用结构,因为它似乎就是它的用途,但我一直无法找到使用它们的正确语法。
任何帮助将不胜感激!
import struct
decoded = []
with open("some_bin_file.rt","rb") as f:
while True:
try:
decoded.append(struct.unpack_from("<Q",f)[0])
# `<` means little endian; `Q` means unsigned long long (8 bytes)
except struct.error:
break
print decoded
我认为应该有效...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)