我们知道,计算机中处理的都是数,确切地说都是二进制数,那么需要计算机处理的一切信息都要表示为数的形式才能够被计算机所处理,这就需要一个编码的过程来将这些各种各样的信息编码为二进制数处理。
1.BCD编码
BCD(Binary-Coded Decimal,BCD)代码称为BCD码或二-十进制代码,也称为二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个二进制位来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷地进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式计数法,采用BCD码,既可保存数值的精确度,又可使电脑作浮点运算时所用的时间较少。此外,对于其他需要高精确度的计算,BCD编码也很常用。
由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有24=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9×1010种方案。
最常用的BCD编码,就是使用0至9这十个数值的二进码来表示。这种编码方式被称为“8421码”。除此以外,有人还开发了一些其他的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:
有权BCD码,如:8421码(最常用)、2421码、5421码……
无权BCD码,如:余3码、格雷码(又称二进制循环码)……
表2-4是常用BCD码的编码方式。
表2-4 常见BCD码的编码方式
BCD码使用二进制编码来表示十进制数,其本质上还是十进制的,有十个不同的数字符号(只是用四位二进制编码来表示),且逢十进一。BCD码和十进制数之间的转换非常容易,只要按照编码表将相应的数字进行替代就可以了。但是要在BCD码和二进制数之间进行转换,则必须依赖十进制数作为中继才行。(www.xing528.com)
2.字符与文字的编码
文字处理是当前计算机经常使用到的功能,对文字进行处理的前提是先要对文字,包括字符进行二进制编码。当前计算机中普遍使用的编码有ASCⅡ码、Unicode编码等,本书中出现最多的将是ASCⅡ编码。
ASCⅡ编码全称美国信息交换标准码(American Standard Code for Information Inter-change),是一种标准的单字节字符编码方案,用于基于英文文本的数据。它起始于20世纪50年代后期,在1967年定案。ASCⅡ码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCⅡ码使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号、以及在美式英语中使用的特殊控制字符。目前许多基于X86的系统都支持使用扩展(或“高”)ASCⅡ。扩展ASCⅡ码允许将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。
在ASCⅡ编码中,值8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,对文本显示有不同的影响。表2-5给出了ASCⅡ编码的码表。
表2-5 ASCⅡ码表
可显示字符:(编码为32的字符是空白字符,即我们平常所称的空格符)
ASCⅡ码仅仅能够用于表示和交换美式英语,而对于包括中文在内的其他语言所书写的文档无法表示和处理,这就要求表示能力更加强大的编码。中文的表示和处理,可以依靠GB2312-80,Big5等一系列中文编码来解决。而1994年正式公布,目前仍然在不断升级的Uni-code编码系统则力图为每种语言中的每个字符设定统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。目前的汉字编码标准是2000年公布的GB18030-2000,它采用单、双、四字节混合编码,收录了27484个汉字,总编码空间超过150万个码位。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。