ASCII
(StreamWriter
)中每个字符的大小取1
个字节,无论是数字还是字符。
同样,每个字符的大小,二进制的整数是多少? (BinaryWriter
)。有人可以简单解释一下吗?
答案 0 :(得分:1)
让我们从StreamWriter
和BinaryWriter
之间的差异开始吧。 StreamWriter
用于将文本表示写入流。 StreamWriter
将写入的任何内容(通过Write *方法)转换为字符串,然后通过编码转换为字节,并将字节写入基础流。
BinaryWriter
用于将原始“原始”数据类型写入流。对于数字类型,它采用内存表示,有些工作可以规范化表示(例如,处理字节序的差异),然后将字节写入底层流。请注意,它还具有构造函数中提供的编码。这仅用于将char
和string
转换为字节。默认编码为UTF8。
ASCII(StreamWriter)中每个字符的大小,无论是数字还是字符,都需要1个字节。
这句话对我来说有点混乱。让我澄清一下。 int
1将被转换为字符串“1”,其中ASCII编码为49,实际上是一个字节,但是100将被转换为字符串“10000”,其以ASCII编码为49 48 48 48 48,所以这是5个字节。如果使用BinaryWriter
,则两者都占用4个字节(int
的大小)。
同样,每个字符的大小,二进制的整数是多少? (的BinaryWriter)。有人可以简要解释一下吗?
char
的大小取决于BinaryWriter
和StreamWriter
使用的编码。 int
,long
,double
等数字类型的大小分别是基础类型的大小,分别为4,8和8字节。写入的数据量记录在BinaryWriter的每个Write overload中。字符串在BinaryWriter中与char[]
明显区别对应,并且在写入编码字节之前将其长度加上前缀。