课本上是这么说的,所有的数据都是以二进制存储,包括汉字,计算机在处理汉字时也要转换成二进制,但汉字与其他字符不同,是以机内码的形式存储在计算机中的,而机内码又是由0和1组成的。机内码用16进制表示,每个汉字的机内码占两个字符。
可是这些话不是自相矛盾吗?这都把我绕晕了,如何汉字是以二进制形式存储在计算机中,用机内码表示,那机内码不应该是二进制吗?怎么就又变成了16进制表示了????
汉字在计算机中的存储方式是采用Unicode编码,Unicode编码是一种字符集,它为每个字符分配了一个唯一的数字编号,这个编号被称为Unicode码点。Unicode码点的范围是0x000000到0x10FFFF,共有1,114,112个码点。
在计算机中,Unicode编码通常使用UTF-8、UTF-16或UTF-32等编码方式进行存储。UTF-8编码是一种变长编码方式,使用1到4个字节来表示一个字符,其中汉字通常使用3个字节来表示。UTF-16编码是一种定长编码方式,使用2个字节来表示一个字符,其中汉字通常使用2个字节来表示。UTF-32编码是一种定长编码方式,使用4个字节来表示一个字符,其中汉字也使用4个字节来表示。
因此,汉字在计算机中的存储方式并不是以固定的进制进行存储,而是采用Unicode编码,并使用不同的编码方式进行存储。