私は現在、エンディアン関連の問題に取り組んでいます。
ビッグエンディアンシステムにビッグエンディアンファイルがあると仮定しましょう。
このファイルの最初の値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を直接読み取る必要があります_myint8
。