一般来讲,用数字或某种文字、符号或数码串来表示某一对应数字、信号和状态的过程,称为编码(例如:给孩子取名字、给学生编学号、电话号码、各地的邮政编码等,都是编码)。
计算机中采用的是二进制数,因此,在计算机中表示的数、字母、符号等都是以特定的二进制数码来表示,这就是二进制编码,编码的结果称为代码,或二进制码、十六进制码。例如:将字符A编码为1000001B,即41 H,则称A的代码为41H。
在计算机中,由于机器只能识别二进制数,因此键盘上所有的数字、字母和符号都事先按一定的规律为它们进行了二进制编码,以便机器加以识别、存储、处理和传送。和日常生活中的编码问题一样,所需编码的数字、字母和符号越多,二进制数的位数也越长。
二进制编码的实质是将二进制编码按一定的规律和数字、对象、信号和状态一一对应起来,用不同的二进制数代码串对应数字、对象、信号和状态。
下面,就微型计算机中常用的BCD(Binary Coded Decimal)码和ASCII(American Standard Code for Information Interchange)码进行介绍。
1.BCD码(十进制数的二进制编码)
(1)BCD码
BCD码是一种具有十进制权位的二进制编码,最常用的BCD码是标准BCD码,或称为8421码,8421码是最基本、最简单的一种编码方案,应用十分广泛。BCD码是将4位二进制数组成l位十进制数,4位二进制数有16种组合0000B~1111B,取其中0000B~1001B按照自然二进制码的规律排列成10个数字,因为组成它的4位二进制数码的权位分别为8、4、2、1而得名为8421码,用0000B~1001B分别表示十进制的0~9,而BCD码不使用1010B~1111B(0AH~0FH)六种状态。BCD码有压缩BCD码和非压缩BCD码之分。压缩BCD码是4位二进制表示l位十进制数,而非压缩BCD码是8位二进制表示1位十进制数。具体表示见表1-2。
表1-2 BCD码表
通常压缩BCD码简称为BCD码。
例1-8 写出42、125的十进制数、二进制数、压缩BCD码和非压缩BCD码。
解:
(2)BCD码的加法运算(www.xing528.com)
BCD码在做加法时,其结果仍然是一个二进制数。不论人们在编制程序时使用的是什么数制,由于计算机使用的是机器语言,计算机只能进行二进制加法,4位二进制数的加数和被加数之间只能按逢16进位,不可能进行逢10进位,因此,计算机在进行BCD加法时,必须对二进制加法的结果进行调整。十进制调整是利用调整指令予以实现(调整指令分为压缩的BCD码调整指令和非压缩的BCD码调整指令)。
调整指令(调整指令将在3.2.2节中介绍),只有调整后的BCD码才能真正做到逢10进位。
例1-9 已知X=37,Y=15,试计算(X+Y)BCD码=?
解:分析:(37)BCD码=0011011lB,(15)BCD码=000l0101B 则有:
(X+Y)BCD码=(37+15)BCD码=01010010B=52D
BCD码的优点:
①BCD码与自然二进制数有很好的对应关系,很容易实现彼此之间的转换。
②BCD码具有奇偶特性,凡是奇数十进制数的BCD码的最低位皆为l,偶数的BCD码的最低位皆为0,所以采用BCD码的十进制数容易判别奇偶性。
2.ASCII码
ASCII码是美国国家标准信息交换码,目前它是许多国家通用的一种国际标准码。ASCII码用一个8位二进制数来表示一个字符的代码,其中最高位常用作奇偶校验位,用来检验ASCII在存储和传送过程中是否发生错误,低7位是字符的ASCII码的代码值。
ASCII码用7位二进制数组成字符的代码进行编码时,可以得到128个不同的代码,其中26个大写英文字母A~Z的代码为41H~5AH,26个小写英文字母a~z的代码为61H~7AH,小写字母的代码与大写字母代码相差20H,十进制数0~9的代码为30H~39H,0~31及127(共33个)是控制字符或通信专用字符,如控制符:LF(换行)、CR(回车)等;通信专用字符:SOH(文头)、EOT(文尾)等,它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响,其余代码则分配给各种标点符号和运算符等。
例如:英文字母A的ASCII码是41H(D6D5D4D3D2D1D0=1000001B);
数字7的ASCII码是37H(D6D5D4D3D2D1D0=0110111B);
回车“CR”的ASCII码是0DH(D6D5D4D3D2D1D0=0001101B);
逗号“,”的ASCII码是2CH(D6D5D4D3D2D1D0=0101100B)。
ASCII码字符表参见附录B。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。