BinaryReader读取4个字节,但没有得到预期的结果

时间:2011-10-08 06:26:10

标签: c# binary byte

我使用BinaryReader读取文件,我遇到了无法解决的问题。 (C#)

我需要读4个字节。当我用我的十六进制查看器查看这些字节时,它是00 00 00 13。 所以我试过Int32 fLength = dbr.ReadInt32();结果是318767104而不是19(我的预期和需要)。当我使用byte[] fLength = dbr.ReadBytes(4);时,我可以看到我已经读取了正确的字节[0] [0] [0] [19]。

(我对下面的字节有同样的问题)

我如何读取这4个字节并得到19作为结果。

提前致谢!

Robertico

2 个答案:

答案 0 :(得分:6)

这是一个little endian vs big endian问题:318767104 = 0x13000000

来自documentation

  

BinaryReader以小端格式存储此数据类型。

Jon Skeet的miscutil有一个允许您选择大端或小端的读者。

答案 1 :(得分:1)

用于读取4字节的二进制文件

byte[] byteArray = new byte[(int)(flstrm.Length)];
int a= System.BitConverter.ToInt32(byteArray, 0); //here 0 is the start index
lbl1.Text= a.toString();