写入 BinaryWriter 时类型的大小

Size of types when writing into BinaryWriter

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

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

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

BinaryWriter 用于将原始 "primitive" 数据类型写入流。对于数字类型,它采用内存表示,做一些工作来规范化表示(例如处理字节顺序的差异),然后将字节写入底层流。请注意,它还具有构造函数中提供的编码。这仅用于将 charstring 转换为字节。默认编码为UTF8.

Size of each character in ASCII (StreamWriter) takes 1 byte whether its a number or character.

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

Similarly what will be the size of each character, integer in binary? (BinaryWriter). Can some one explain in brief?

char 的大小取决于 BinaryWriterStreamWriter 所使用的编码。 intlongdouble 等数字类型的大小是基础类型的大小,分别为 4、8 和 8 个字节。写入的数据量记录在 BinaryWriter 的每个 Write overload 中。在 BinaryWriter 中,字符串的处理方式与 char[] 截然不同,并且在写入编码字节之前会为其长度加上前缀。