从文件中读取小端并转换为十进制

2023-12-19

我有一个文件,其中包含小端格式的无符号 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(使用前将#替换为@)

从文件中读取小端并转换为十进制 的相关文章

随机推荐