如果我说2个字节可以容纳510个字符的数据,那我会错吗?基于1个字节可以容纳0-255个最大字符的事实
答案 0 :(得分:4)
一个字节是:
两个字节是......两个字节。
如果您不知道所使用的encoding
,那么每个字节(或两个字节) 是 没有任何意义256个(或65536)值中的单个值应该是/ mean。
如果你正在谈论Char
,你就不能说它是一个或两个或五十个字符......
ASCII encoding
包含128个不同的字符(可显示95个字符,其余为控制字符),范围从代码0到127(以十进制字面表示的字节值)
Unicode encoding
(v7)是一种通用编码。你有UTF-8,UTF-16 Little Endian或Big Endian,以及UTF-32 Little Endian或Big Endian。
有数百种不同的编码可以代表单个字节可以表示的256个唯一值中的每一个的一个字符。与ANSI
一样。
所以我倾向于说,是的,你错了认为两个字节可以容纳510个字符的数据,假设你正在使用上述编码之一或类似的。< / p>
但同样,Byte是Byte,而不是Char!
让我们设想一个具有特定解析器和格式化程序的(新)自定义编码,其中每个位[0 or 1]
定义存储在字典中的一个单词/文本/字符串的选择,并跟随单词/ text / string选择取决于先前选择的单词(前一位值)
这种编码的目的有点无用,但是嘿!因为您使用了字典,所以可以确认一个字节 可以 正好代表510个字符的数据(甚至更多),因为使用了这种特定的编码/解码。 !
同样,一个字节是一个字节,说它包含一个,两个,零个或510个字符并不意味着任何如果你不首先定义使用的编码是什么< /强> 的
编辑!
虽然它超出了问题的范围,compression
更加邪恶(并且通常使用词典;)但是压缩只能从某些中生效字节数....
答案 1 :(得分:1)
字符是概念的图形表示,可以占用任意数量的字节。例如,字符“S”(大写字母“S”)占用1个字节,而字符(接吻嘴唇)占用3个字节。
答案 2 :(得分:0)
我认为你的答案是对的。 byte是1个字符。二进制中的字符是一系列8个开或关或0或1。其中一个是一位,8位是一个字节所以1个字节是一个字符。所以2个字节包含两个字符。
答案 3 :(得分:0)
这取决于字符串的格式。 ASCII
中每个字符1个字节,Unicode
中每个字符2个字节。所以2个字节只能包含单个Unicode字符或2个ASCII字符。
以下代码将解释我的回答
MsgBox(System.Text.ASCIIEncoding.Unicode.GetByteCount("h")) '<--- displays 2
MsgBox(System.Text.ASCIIEncoding.ASCII.GetByteCount("h")) '<--- displays 1