二进制文件格式:为什么系统读取了所有4个字节,并将值正确显示为25736483

本文关键字:25736483 显示 字节 4个 为什么 格式 系统 读取 二进制文件 | 更新日期: 2023-09-27 17:59:07

使用c#程序BinaryWriter类,我正在文件中写入2个单词

bw.write(i);
bw.write(s);

其中CCD_ 1是具有值CCD_。并且CCD_ 3是具有值CCD_

我正在再次读取文件并将值输出到textbox.text

iN = br.ReadInt32();
newS = br.ReadString();
this.textBox1.Text = i.ToString() + newS;

整数将存储在4个字节中,字符串将存储在另外11个字节中。当我们阅读ReadInt32时,系统如何知道它必须生成4个字节,而不仅仅是1个字节。为什么系统读取了所有4个字节,并将值正确显示为25736483

二进制文件格式:为什么系统读取了所有4个字节,并将值正确显示为25736483

您告诉它用ReadInt32读取Int32,而Int32是4个字节(32位)。所以你说"读取一个四字节(32位)整数",它完全按照你的要求去做

当你使用bw.write(i);时也发生了同样的事情——正如你所说,i0是一个整数,你告诉它写一个整数。由于在您的平台上,默认整数是4字节(32位),因此它写了4个字节。

整数在您的平台上是32位的。因此,当您将一个整数传递给write时,会得到一个写4个字节的重载。ReadInt32函数知道读取四个字节,因为32位就是四个字节。

Write方法为它知道如何编写的每个变量类型都有一个重载。这个重载确切地知道在流中存储值需要多少字节。你可以在这里看到每一个特定的过载。

当您读取数据时,会调用的正确版本。读取要读取的数据类型,该数据类型也经过专门编码,以了解该类型中有多少字节。