ASCII 表设计之妙

老是记不住数字、字母的ASCII表值,每次使用都要查一查,总觉得有点不爽。今天看过《Windows程序设计》的下边一段话后,才发现,哎呀,ASCII表是经过巧妙设计的,自己没发现罢了。

 

ASCII有许多优点。例如,26个字母代码是连续的;大写字母和小写字母可通过改变一位数据而相互转化;10个数字的代码可从数值本身方便地得到

 

先看字母: ——要用二进制码和16进制码才能看出妙来

       大写字母A 对应  0100 0001   41

       小写字母a对应   0110 0001   61

 

    看看后4位,26个字母的第一个就用1表示,无论大小写。再看前四位,大小写字母之间只需要改变第3位就OK了,那么为什么A对应的前4位是0100,而不是1000 0001呢,首先ASCII只对应到127,所以第一个Bit肯定是0;然后26个字母的表示需要5Bit,所以前4位的第4Bit就不能用了,那么只能在第23Bit下功夫了,00 011011 任选两对就可以了,至于为什么选择了 10 11,我就不清楚了。

 

再看看数字:

       数字0对应  0011 0000

       数字1对应  0011 0001

 

       4位,就是数字大小。前四位为什么用 0011,我就不清楚了。

 

再看看几个常用的按键:

 

       Backspace   0000  1000  08        8

      Enter           0000  1101  0D        13

      Esc              0001  1011  1B        27

      Space          0010  0000  20        32

      0                 0011  0000  30        48

      A                 0100  0001   41       65

      a                 0110  0001   61       95

      也许通过上边几个键值的前四位的变化比较看出点端倪,我没有充分的证据,就不乱说了。

你可能感兴趣的:(ASCII)