我们都知道计算机中一切都是0和1。那么,我们看到的字符在计算机中是如何表示的那?我们要分成西文字符和中文字符来分别探究。
西文字符
西文字符中拉丁字母、数字、标点以及特殊符号,都视为字符。字符的集合叫做字符集。字符想在计算机中进行处理,就要变成01码,因而就需要对字符进行编码。一个字符对应唯一一个二进制的01序列,所有的这些对应就是码表。
目前(写该文时间2017-2-28),西文字符使用最广泛的码表就是ASCII码表。
这里要说一下,一个ASCII字符的大小是一个字节(8位),但是,使用了7位二进制数,最头上的一般总是为零。
从图上我们可以看出
1. 0~9的前三位为011,后四位就是8421码
2. 字母按照字典顺序出现,即a<b<c…… A<B<C……
3. 大写字母的前三位是100和101,小写字母是110和111.即将大写字母的b5位由0改1,那么就可实现大写转小写。
汉字字符
汉字这个就厉害了。
让用户顺利输入:输入码。
让计算机顺利存储:内码。
让计算机顺利显示:字模点阵码。
1.输入码(又叫外码)
有四种输入码:拼音码、拼型码、音型码、序号码。
以前曾好奇 中国人使用的拼音怎么和西方文字这么相像!现在才知道,改革开放就是好。汉语拼音是中华人民共和国的汉字“拉丁化”方案,于1955年—1957年文字改革时被中国文字改革委员会汉语拼音方案委员会研究制定。
2.内码
计算机是如何保存我们的汉字的那。1981年我国出台了GB2312——80。这个标准成为国标码,又叫国际交换码。
首先,一个汉字占用两个字节,那么就有14的二进制位来表示一个汉字。GB2312中规定了一个94行、94列的码表。行号是区号(7位),列号是位号(列号)。这样一个字符的区位号凑成14位,这个14位的代码就是区位码。
注意了,区位码并不是国标码。由于信息传输原因,区号和位号分别加上32后(20H),才是国标码。但是,这样很难与两个ASCII码进行区分。我们就把国标码的两个字符的最高为从0改成1。
例如:“大”的区号是20、位号是83,那么他的区位码是 14 53H(0001 0100 0101 0011B),加上32(20H)后得到的码是,34 73H(0011 0100 0111 0011B),但是34H和“4”的ASCII相同、73H和“s”的相同,产生混乱。我们再把两个最高位的0设成1,B4 F3H(1011 0100 1111 0011B)就不再出现混乱,即出现国标码了。
随着计算机在亚洲的普及,国际标准ISO/IEC 10646,提出使用两个字节或四个字节来保存一个字符,即UCS-2和UCS-4。后来windows采用中西统一编码,其中搜集了中日韩的约2万字,成为“Unicode”。
3.字模点阵码
每一个把汉字的字形都需要预先存放在计算机中,一套汉字的所有字形信息成为一个字形信息库,简称字库。
字形主要有两种描述方式:字模点阵、字形轮廓描述。
字模点整就是使用01矩阵来描述一个字的形状,1的地方是黑色……
字形轮廓描述是使用直线河曲县来描述字的轮廓,即由数学公式描述。精准度极高,且可让字形大小自由变换。