写入BinaryWriter时的类型大小

hit*_*ain 6 .net c# size binarywriter

ASCII(StreamWriter)中每个字符的大小取1字节,无论是数字还是字符.

同样,每个字符的大小,二进制的整数是多少?(BinaryWriter).有人可以简单解释一下吗?

Mik*_*ray 1

StreamWriter让我们从和之间的区别开始BinaryWriterStreamWriter用于将文本表示写入流。 StreamWriter将(通过 Write* 方法)写入的任何内容转换为字符串,然后通过编码转换为字节,并将字节写入底层流。

BinaryWriter用于将原始“原始”数据类型写入流。对于数字类型,它采用内存中的表示形式,进行一些工作以规范化表示形式(例如,处理字节顺序的差异),然后将字节写入底层流。请注意,它还在构造函数中提供了编码。这仅用于将char和转换string为字节。默认编码是UTF8。

ASCII(StreamWriter)中每个字符的大小无论是数字还是字符都占用 1 个字节。

这句话让我有些困惑。让我澄清一下。1int将被转换为字符串“1”,它在 ASCII 中编码为 49,这确实是一个字节,但 100 将被转换为字符串“10000”,在 ASCII 中编码为 49 48 48 48 48,所以这是 5 个字节。如果BinaryWriter同时使用,将占用 4 个字节(一个 的大小int)。

同样,每个字符(二进制整数)的大小是多少?(二进制编写器)。有人可以简单解释一下吗?

a 的大小取决于和char所使用的编码。、 、等数字类型的大小是基础类型的大小,分别为 4、8 和 8 字节。写入的数据量记录在BinaryWriter 的每次写入重载中。字符串的处理方式与 BinaryWriter 不同,并且在写入编码字节之前将为其长度添加前缀。BinaryWriterStreamWriterintlongdoublechar[]