写入 BinaryWriter 时类型的大小
Size of types when writing into BinaryWriter
ASCII
(StreamWriter
) 中每个字符的大小需要 1
字节,无论是数字还是字符。
同样每个字符的大小是多少,二进制整数? (BinaryWriter
)。有人可以简要解释一下吗?
让我们从 StreamWriter
和 BinaryWriter
的区别开始。 StreamWriter
用于将文本表示写入流。 StreamWriter
将写入的任何内容(通过 Write* 方法)转换为字符串,然后通过编码转换为字节,并将字节写入底层流。
BinaryWriter
用于将原始 "primitive" 数据类型写入流。对于数字类型,它采用内存表示,做一些工作来规范化表示(例如处理字节顺序的差异),然后将字节写入底层流。请注意,它还具有构造函数中提供的编码。这仅用于将 char
和 string
转换为字节。默认编码为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
的大小取决于 BinaryWriter
和 StreamWriter
所使用的编码。 int
、long
、double
等数字类型的大小是基础类型的大小,分别为 4、8 和 8 个字节。写入的数据量记录在 BinaryWriter 的每个 Write overload 中。在 BinaryWriter 中,字符串的处理方式与 char[]
截然不同,并且在写入编码字节之前会为其长度加上前缀。
ASCII
(StreamWriter
) 中每个字符的大小需要 1
字节,无论是数字还是字符。
同样每个字符的大小是多少,二进制整数? (BinaryWriter
)。有人可以简要解释一下吗?
让我们从 StreamWriter
和 BinaryWriter
的区别开始。 StreamWriter
用于将文本表示写入流。 StreamWriter
将写入的任何内容(通过 Write* 方法)转换为字符串,然后通过编码转换为字节,并将字节写入底层流。
BinaryWriter
用于将原始 "primitive" 数据类型写入流。对于数字类型,它采用内存表示,做一些工作来规范化表示(例如处理字节顺序的差异),然后将字节写入底层流。请注意,它还具有构造函数中提供的编码。这仅用于将 char
和 string
转换为字节。默认编码为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
的大小取决于 BinaryWriter
和 StreamWriter
所使用的编码。 int
、long
、double
等数字类型的大小是基础类型的大小,分别为 4、8 和 8 个字节。写入的数据量记录在 BinaryWriter 的每个 Write overload 中。在 BinaryWriter 中,字符串的处理方式与 char[]
截然不同,并且在写入编码字节之前会为其长度加上前缀。