Numpy读取大端数据:数据类型格式
我正在尝试使用NumPy的fromfile
函数从一个使用大端编码的文件中读取数据。根据文档,我了解到:
">u2"
- 大端无符号字"<u2"
- 小端无符号字
我做了一个测试文件来检查这个:
$ 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
这表明我在一个小端系统上(输出的第一行)。然而,我尝试以大端方式读取数据。我难道不应该得到
0xdcfe
0x98ba
吗?
1 个回答
3
其实你不应该这样做:
我们来看看这个文件的十六进制转储
$ hexdump -C file
00000000 fe dc ba 98 76 54 32 10
然后看看来自 维基百科 的图片,你会发现你的输出是正确的。