我正在尝试使用NumPy fromfile
函数从具有大端编码的文件中读取数据。
根据{{3}}我认为
">u2"
- big-endian unsigned word "<u2"
- little-endian unsigned word 我制作了一个测试文件来检查:
$ echo -ne '\xfe\xdc\xba\x98\x76\x54\x32\x10' > file
然而,我现在得到的结果与我的预期相反。
例如:
from numpy import *
import sys
print sys.byteorder
with open('file', 'rb') as fh:
a=fromfile(fh, dtype='>u2', count=2, sep='')
print a
for i in a:
print hex(i)
给出输出:
little
[65244 47768]
0xfedc
0xba98
显示我在一个小端系统(第一行输出)。但是,我尝试将数据读作big-endian。我应该
0xdcfe
0x98ba
答案 0 :(得分:2)
其实你不应该:
让我们看一下文件的hexdump
$ hexdump -C file
00000000 fe dc ba 98 76 54 32 10
然后查看wikipedia中的图片,您就会发现输出正确。