1.1.3 微型计算机中常用编码
由于微型计算机不但要处理数值计算问题,还要处理大量非数值计算问题,因此除非直接给出二进制数,否则不论是十进制数还是英文字母、汉字及某些专用符号,都必须编成二进制代码才能被计算机识别、接收、存储、传送及处理。
1.十进制数的编码
在微型计算机中,十进制数除了可以转换成二进制数,还可以用二进制数对其进行编码:用4位二进制数表示1位十进制数,使它既具有二进制数的形式又具有十进制数的特点。二-十进制码又称为BCD码(Binary-Coded Decimal),它有8421码、5421码、2421码、余3码等编码,其中最常用的是8421码。8421码与十进制数的对应关系如表1.2所示,每位二进制数位都有固定的权,各数位的权从左到右分别为23、22、21、20,即8、4、2、1,这与自然二进制数的位权完全相同,故8421码又称为自然权BCD码。其中,1010~1111这6个编码属于非法8421码,是不允许出现的。
表1.2 8421码与十进制数的对应关系
由于BCD码低位与高位之间是“逢十进一”,而4位二进制数(十六进制数)低位与高位之间是“逢十六进一”,因此在用二进制加法器进行BCD码运算时,如果BCD码运算的低位、高位的和都在0~9范围内,则其加法运算规则与二进制加法运算规则完全一样;如果相加后某位(BCD码位,低4位或高4位)的和大于9或产生了进位,则此位应进行“加6调整”。在微型计算机中,通常设置了BCD码的调整电路,每执行一条十进制调整指令,就会自动根据二进制加法结果进行修正。由于BCD码低位向高位借位是“借一当十”,而4位二进制数(十六进制数)是“借一当十六”,因此在进行BCD码减法运算时,如果某位(BCD码位)有借位,那么必须在该位进行“减6调整”。
2.字符编码
拓展阅读
由于微型计算机需要进行非数值处理(如指令、数据、文字的输入及处理等),因此必须对英文字母、汉字及某些专用符号进行编码。微型计算机系统的字符编码多采用美国信息交换标准代码—ASCII码(American Standard Code for Information Interchange),ASCII码是7位代码,共有128个字符(拓展阅读),其中有94个字符是图形字符,可通过字符印刷或显示设备打印出来,包括数字10个、英文大小写字母52个,以及其他字符32个;另外34个字符是控制字符,包括传输字符、格式控制字符、设备控制字符、信息分隔符和其他控制字符,这类字符不可打印、不可显示,但其编码可进行存储,在信息交换中起控制作用。其中,数字0~9对应的ASCII码为30H~39H,英文大写字母A~Z对应的ASCII码为41H~5AH,英文小写字母a~z对应的ASCII码为61H~7AH,这些规律对今后码制转换的编程非常有用。
我国于1980年制定了国家标准GB1988—80《信息处理交换用的七位编码字符集》,其中除用人民币符号“¥”代替美元符号“$”外,其余字符与ASCII码的字符相同。