大学计算机
上QQ阅读APP看书,第一时间看更新

1.3.2 数据在计算机中的表示

1.数值数据的表示

数值数据用来表示量的大小、正负,如整数、小数等。在计算机内,数值是用二进制来表示的,也就是说,无论多大的数,在计算机中都只能用0和1来表示。

2.字符数据的表示

人们使用计算机的基本手段是通过键盘与计算机交互,从键盘敲入的各种命令和数据都是以字符形式体现的。然而,计算机只能存储二进制数,这就需要对字符数据编码,并由机器自动转换为二进制形式存入计算机。下面介绍几种在计算机应用中经常使用的编码。

1)西文字符编码(ASCII)

ASCII是英文American Standard Code for Information Interchange(美国标准信息交换码)的缩写。目前,计算机中一般都采用国际标准化组织规定的ASCII码来表示英文字母和符号。ASCII码用7位二进制数来表示一个字符,由于2的7次方为128,所以共有128种不同组合,可以表示128个不同字符。其中包括数码0~9,26个大小写英文字母以及各种运算符号、标点符号及控制字符等。基本ASCII字符表如表1-4所示。

表1-4 基本ASCII字符表

从表1-4中可以看出,字符ASCII码的大小规律一般如下:由于基本ASCII字符是按ASCII码值的大小进行排列,因而数字的ASCII码小于字母;在数字的ASCII码中,0的ASCII码最小,9的代码最大;大写字母的ASCII码比小写字母的ASCII码小;对于字母字体,ASCII码的大小按字母顺序递增,A的ASCII码最小,z的ASCII码最大。其中,0的ASCII码为48,A的ASCII码为65,a的ASCII码为97,其他数字和字母的ASCII码可以依次推算出来。

扩充ASCII码的最高位为1,其范围用二进制表示为10000000~11111111,用十进制表示为128~255,也有128种。ASCII码目前已被国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)采纳,成为一种国际通用的信息交换标准代码。

2)汉字字符编码

对于英文,大小写字母总计只有52个,加上数字、标点符号和其他常用符号,128个编码基本够用,所以ASCII码基本上满足了英语信息处理的需要。汉字不是拼音文字,而是象形文字,由于常用的汉字有6000多个,因此使用7位二进制编码是远远不够的,必须使用更多的二进制位。

1980年,我国颁布了《信息交换用汉字编码字符集  基本集》的国标交换码,国家标准号为GB/T 2312—1980,收录了6763个汉字和619个图形符号。在GB/T 2312—1980中,规定用两个连续字节,即16位二进制代码表示一个汉字。由于每个字节的高位规定为1,这样就可以表示128×128=16384个汉字。在GB/T 2312—1980中,根据汉字的使用频率分为两级,第一级有3755个,按汉语拼音字母的顺序排列;第二级有3008个,按部首排列。

英文是拼音文字,基本符号比较少,编码比较容易,而且在计算机系统中,输入、内部处理、存储和输出都可以使用同一代码。汉字种类繁多,编码比西文要困难得多,而且在汉字处理系统中,输入、内部处理、输出对汉字代码的要求不尽相同,所以使用的代码也不尽相同。汉字信息处理系统在处理汉字和词语时,要进行一系列的汉字代码转换。下面介绍主要的汉字代码。

(1)汉字输入码(外码)

汉字的字数繁多,字形复杂,字音多变,常用汉字就有6000多个。在计算机系统中使用汉字,首先遇到的问题就是如何把汉字输入到计算机中。为了能直接使用西文标准键盘进行输入,必须为汉字设计相应的编码方法。汉字编码方法主要有拼音输入、数字输入、字形输入、音形输入等。

(2)汉字内部码(内码)

汉字内部码是汉字在设备和信息处理系统内部最基本的表达形式,是在设备和信息处理系统内部存储、处理和传输汉字用的代码。目前,世界各大计算机公司一般均以ASCII码为内部码来设计计算机系统。汉字数量多,用一个字节无法区分,一般用两个字节来存放汉字的内码,两个字节共有16位,可以表示65536个可区别的码。如果两个字节各用7位,则可表示16384个可区别的码,这已经够用了。另外,汉字字符必须和英文字符相互区别开,以免造成混淆。英文字符的机内代码是7位ASCII码,最高位为“0”,汉字机内代码中两个字节的最高位均为“1”。不同计算机系统采用的汉字内部码有可能不同。

(3)汉字字形码(输出码)

汉字字形码是汉字字库中存储的汉字字形的数字化信息,用于汉字的显示和打印。字形码也称字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16×16点阵,提高型汉字为24×24点阵、32×32点阵、48×48点阵,等等。

字模点阵的信息量是很大的,所占用的存储空间也很大,以16×16点阵为例,每个汉字就要占用32个字节,两级汉字大约占用256KB。

完整的汉字信息处理都离不开从输入码到机内码、由机内码到字形码的转换。虽然汉字的输入码、机内码、字形码目前并不统一,但是只要在信息交换时,使用统一的国家标准,就可以达到信息交换的目的。