私はBinaryReaderクラスでバイナリファイルを読み込もうとしています。私はUInt32のブロックとして読み込み、後でビットシフトなどを行う必要があります。なぜBinaryReader.ReadUInt32()はビットパターンを反転させるのですか?
しかし、何らかの理由でReadUInt32メソッドを使用するとビット順序が逆になります。私は、例えば最初の4つのバイトが進、0x12345678
にこのようなファイルがある場合は
は、彼らがReadUInt32によって読み取られた後、このように終わる:0x78563412
。
私は(4)メソッドReadBytesを使用している場合は、私が期待される配列を取得:
[0x00000000] 0x12 byte
[0x00000001] 0x34 byte
[0x00000002] 0x56 byte
[0x00000003] 0x78 byte
これはなぜでしょうか?それはちょうど方法です.netはメモリ内のuintを表していますか?異なるプラットフォーム間で同じですか(私は64ビットWindows 7、.net 3.5 sp1を実行しています)?
あなたはそれをどのように修正したかを教えて、好奇心を鎮めることができますか? :) –
もちろん:実際には、バイトオーダーがどのような方法であっても、platfroms(x64、x86)で一貫している限り、必要なビットを抽出することができます。シフト。私が見る限り、uintはReadUInt32で構築されたuintだけでなく、リトルエンディアンとして保存されるため、すべてが簡単になります。 –