BinaryReaderクラスでバイナリファイルを読み込もうとしていますが、UInt32のブロックとして読み込み、その後ビットシフトなどを行う必要があります。
しかし、ReadUInt32メソッドを使用すると、何らかの理由でビットの順序が逆になります。
たとえば、最初の4バイトが16進数で次のようになっているファイルがある場合、0x12345678
ReadUInt32で読み取られた後は次のようになります0x78563412
。
ReadBytes(4)メソッドを使用すると、期待される配列が得られます。
[0x00000000] 0x12 byte
[0x00000001] 0x34 byte
[0x00000002] 0x56 byte
[0x00000003] 0x78 byte
どうしてこれなの?.netがメモリ内のuintを表す方法ですか?異なるプラットフォーム間で同じですか(64ビットのWindows 7、.net 3.5 sp1を実行しています)?