我正在尝试找到确定运行我的代码的机器是大端还是小端的最佳方法。我有一个可行的解决方案(尽管我还没有在大端机器上测试过它),但它看起来有点笨拙:
import struct
little_endian = (struct.pack('@h', 1) == struct.pack('<h', 1))
这只是将“本机”两字节包与小端包进行比较。有没有更漂亮的方法?
sys.byteorder
:
本机字节顺序的指示符。在大端(最高有效字节在前)平台上,该值将为
;在小端(最低有效字节在前)平台上,该值为'big'
。'little'
示例:
>>> import sys
>>> sys.byteorder
'little'
当然,根据您的机器,它可能会返回
'big'
。不过你的方法肯定也应该有效。