1.3 编码
在数字电路和计算机中,“0”和“1”两个二进制符号除了可以表示二进制数以外,还可以表示十进制数(符号)、英文字母和一些特殊符号。用二进制符号表示特定信息的过程叫做二进制编码。
1.3.1 二-十进制编码
用4位二进制符号表示1位十进制数的方法叫做二-十进制编码,也称为BCD(Binary Coded Decimal)代码。表1.1中列出了几种常用的BCD代码,根据编码规则的不同,分为有权码和无权码两类。
表1.1 几种常用的BCD代码
(1)有权码
在有权码的编码方式中,每个代码中的“1”都代表一个固定的十进制数值,称为这一位的权值。把每一位的“1”代表的十进制数值加起来,得到的结果就是它所代表的十进制数值。例如在8421代码中,从左到右每一位“1”的权值依次为8、4、2、1,所以这种代码称为8421 码。此外,还有2421 码、4221 码和5421 码等,它们都是有权码。
(2)无权码
在无权码的编码方式中,每个代码中的“1”都不代表固定数值,因此不能按照有权码的方法找到每个代码代表的十进制数值。一般无权码都有一定的编码规则,例如,余3码是由每个8421码加上3后得到的。
1.3.2 字符编码
用若干位二进制符号表示数字、英文字母、命令以及特殊符号叫做字符编码。常用的字符编码是美国国家信息交换标准码,简称ASCII(American Standard Code for Information Interchange)码。ASCII码用7位二进制符号a7a6a5a4a3a2a1来表示字符和命令。
ASCII编码表如表1.2所示,表中列出了各种命令、数字、字母(含大小写)和一些特殊符号的ASCII编码。例如,数字字符‘0’(字符要用单引号括起来)的ASCII码是’b0110000或’h30;‘9’是’b0111001 或’h39;大写字母字符‘A’是’b1000001 或’h41;小写字母字符‘a’是’b1100001或’h61。ASCII码是目前大部分计算机与外部设备交换信息的字符编码。例如,键盘将按键的字符用ASCII码表示送入计算机,而计算机将处理好的数据也是用ASCII码传送到显示器或打印机的,因此称为信息交换标准码。
表1.2 ASCII编码表
另外,ASCII码是一组数字组合,因此ASCII码有大小之分。例如,字符‘0’的ASCII码(’h30)小于字符‘1’(’h31)的、字符‘A’的ASCII码(’h41)小于字符‘B’(’h42)的等。在计算机编程中,利用ASCII码的大小特征,可以对一些符号组合(例如国家名)进行排序。