写入BinaryWriter时的类型大小

时间:2015-12-18 07:21:14

标签: c# .net size binarywriter

ASCIIStreamWriter)中每个字符的大小取1个字节,无论是数字还是字符。

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

1 个答案:

答案 0 :(得分:1)

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

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

  

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

这句话对我来说有点混乱。让我澄清一下。 int 1将被转换为字符串“1”,其中ASCII编码为49,实际上是一个字节,但是100将被转换为字符串“10000”,其以ASCII编码为49 48 48 48 48,所以这是5个字节。如果使用BinaryWriter,则两者都占用4个字节(int的大小)。

  

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

char的大小取决于BinaryWriterStreamWriter使用的编码。 intlongdouble等数字类型的大小分别是基础类型的大小,分别为4,8和8字节。写入的数据量记录在BinaryWriter的每个Write overload中。字符串在BinaryWriter中与char[]明显区别对应,并且在写入编码字节之前将其长度加上前缀。