我目前正在处理与字节序相关的问题。
假设我在大端系统中有一个大端文件。
此文件中的第一个值2882400152 = 0xABCDEF98
是整数 4。
要读取整数 4 中的值_myint4
,我只需执行以下操作:
mystream.read(reinterpret_cast<char*>(&_myint4), sizeof(_myint4))
问题是:读取文件中的整数 4 值,整数 8 等价于_myint8
什么?
- 对于大端文件和系统?
- 对于小端文件和系统?
我的第一个猜测是这样的:
mystream.read((reinterpret_cast<char*>(&_myint8))+4, 4); // big-endian file/system
mystream.read(reinterpret_cast<char*>(&_myint8), 4); // little-endian file/system
但我完全不确定。这样做的好方法是什么?
重要提示:我不能使用临时整数 4 值,我需要直接读取 4 中的整数 4 _myint8
。