BinaryReader 클래스를 사용하여 이진 파일을 읽으려고하는데 UInt32 블록으로 읽어야하고 이후에 약간의 비트 이동 등을해야합니다.왜 BinaryReader.ReadUInt32()가 비트 패턴을 뒤집습니까?
그러나 ReadUInt32 메서드를 사용할 때 어떤 이유로 비트 순서가 반대로됩니다.
예를 들어, 처음 4 바이트가 16 진수로 표시되는 파일 인 경우 0x12345678
은 ReadUInt32 : 0x78563412
에 의해 읽혀진 후 이렇게됩니다. 왜이
[0x00000000] 0x12 byte
[0x00000001] 0x34 byte
[0x00000002] 0x56 byte
[0x00000003] 0x78 byte
이다 : 나는의 readBytes를 사용하는 경우
(4) 방법은, 내가 예상되는 배열을 얻을? 그것은 단지 방법일까요? .net은 메모리에있는 uint를 나타 냅니까? 다른 플랫폼에서 동일합니까 (64 비트 Windows 7, .net 3.5 SP1).
어떻게 수정했는지 우리에게 알려 주어 호기심을 불러 일으킬 수 있습니까? :) –
물론 :) 실제로는 바이트 순서가 어떤 식 으로든 상관 없습니다. platfroms (x64, x86)에서 일관성이 있다면, 필요한 비트를 추출 할 수 있습니다. 단지 비트를 변경해야합니다. 이동. 지금까지 보았 듯이 uint는 일반적으로 ReadUInt32에 의해 빌드 된 uint가 아닌 리틀 엔디안으로 저장되므로 모든 것이 더 쉬워집니다. –