dan*_*mad 9 c char language-lawyer
为什么char 1C中的字节长?为什么不是2字节或4字节长?
将它保持为1字节的基本逻辑是什么?我在Java中知道a char是2字节长.同样的问题.
Sou*_*osh 23
char是1个字节,C因为它是在标准中指定的.
最可能的逻辑是.a char(在标准字符集中)的(二进制)表示可以适合1字节.在初步开发时C,最常用的标准是,ASCII并且EBCDIC分别需要7位和8位编码.所以,1一个字节是足以代表整个字符集.
OTOH,在此期间Java出现,扩展的charcater集的概念和unicode存在.所以,要面向未来,并支持可扩展性,char给予2 bytes,这是能够处理扩展字符集值.
为什么char持有超过1字节?char通常表示ASCII字符.只需看一下ASCII表,(扩展)ASCII代码中只有256个字符.因此,您只需要表示0到255之间的数字,即8bit = 1byte.
看一下ASCII表,例如:http://www.asciitable.com/
这就是C.当Java被设计时,他们预计将来任何字符(也是Unicode)都可以保存在16bits = 2bytes中.