计算机数据与编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机数据与编码
1.6.1信息和数据
信息是人们对客观世界的认识,即对客观世界的一种反映。
数据是表达现实世界中各种信息的一组可以记录、可以识别的记号或符号。它是信息的载体,是信息的具体表现形式。
数据形式可以是字符、符号、表格、声音、图像等。
数据可以在物理介质上记录或传输,并通过输入设备传送给计算机处理加工。数据的单位分为以下几种:1)位(bit)
计算机中最小的数据单位二进制的一个数位,称为比特位,简称位。
1位二进制只能表示两种状态,即0或1。n位二进制能表示2n种状态
2)字节(Byte)
相邻8个比特位组成一个字节,用B表示。字节是计算机中用来表示存储容量大小的基本单位。
1B = 8bits
1KB = 210B = 1024B
1MB = 220B = 1024KB
1GB = 230B = 1024MB
1TB = 240B = 1024GB
3)字(Word)
在计算机中作为一个整体被存取、传送、处理的二进制数位叫做一个字,每个字中二进制位数的长度,称为字长。
用8位字长表示一个整数与用16位字长表示一个整数,其所表示的数的上限和下限是不一样的。
字长所占位数其所表示的数的范围
8 -128 ~ 127 即:-27 ~ (27 - 1)
16 -32768 ~ 32767 即:-215 ~ (215 - 1)
32 -2147483648 ~ 2147483647 即:-231 ~ (231 - 1)
1.6.2 数字化信息编码
在计算机内部,可用物理器件的高低电平代表二进制的“0”和“1”,另外,脉冲的正负极性,晶体管的导通和截止都可以用来表示二进制的“0”和“1”。由于二进制只有两个状态,数据的传输和处理不容易出错,另外二进制数的记数、加减法运算规则较为简单,可用开关电路实现,且二进制的“0”和“1”正好与逻辑命题的两个值“真”和“假”相对应,为计算机种中实现逻辑运算和逻辑判断提供了便利的条件。所以,在计算机中,广泛采用的是只有“0”和“1”两个基本符号组成的基二码,或称为二进制码。
计算机最重要的功能是处理信息,这些信息包括数值、文字、图形、符号、图象、声音等,所有这些信息都必须经过编码,转换成计算机能够识别和处理的二进制码的形式才能够被存储、传送和加工。
BCD码是二进制编码的十进制数(Binary Coded Decimal)的简写。有四位BCD码、六位BCD码和扩展的BCD码三种。
(1)非数值数据的表示
1) 字符数据的表示
ASCII码(America Standard Code for Information Interchage)是美国标准信息交换码,被国际化组织指定为国际标准,分为7位和8位两种版本。
国际通用的是7位ASCII码,它已对大、小写英文字母、阿拉伯数字、标点符号及控制符等特殊符号编码,共128个字符。
(2) 汉字的表示
汉字与英文的主要区别:
1)英文是拼音文字,汉字是表意文字。英文字母只有26个,汉字多达5万个以上,常用汉字也有6000多个。
2)汉字的同音字很多,一个音往往会有几个甚至几十个字。
3)英文排序简单,汉字排序非常复杂,而且与文字本身没有本质联系。
开发一个完善的中文信息处理系统必须解决以下三个主要问题:(1)汉字输入(2)汉字输出(3)汉字与西文的兼容性
汉字的编码和表示
1)汉字交换码(国标码)汉字交换码(国标码)主要用于汉字信息交换。
国标码:以国家标准局1980年颁布的《信息交换用汉字编码字符集"基本集》(代号为GB2312 80)规定的汉字交换码作为国家标准汉字编码。GB2312 80中共有7445个字符符号:汉字符号6763个一级汉字3755个(按汉语拼音字母顺序排列)二级汉字3008个(按部首笔划顺序排列)非汉字符号682个GB2312 80规定,所有的国标码汉字及符号组成一个94 94的方阵。在此方阵中,每一行称为一个"区",每一列称为一个"位"。这个方阵实际上组成一个有94个区(编号由01到94),每个区有94个位(编号由01到94)的汉字字符集。一个汉字所在的区号和位号的组合就构成了该汉字的"区位码"。其中,高两位为区号,低两位为位号。这样区位码可以唯一地确定某一汉字或字符;反之,任何一个汉字或符号都对应一个唯一的区位码,没有重码。
区位码分布情况如下:
区号内容1区键盘上没有的各种符号2区各种序号3区键盘上的各种符号(按中文方式给出)4 -5区日文字母6区希腊字母7区俄文字母8区标识拼音声调的母音及拼音字母名称9区制表符号10- 15区未用16-55区一级汉字(按拼音字母顺序排列)56- 87区二级汉字(按部首笔划顺序排列)88- 94区自定义汉字
由上可以看出,所有汉字与符号的94个区,可以分为四个组:
①1 -15区:为图形符号区。其中1 9区为标准符号区;10 15区为自定义符号区。
②16 -55区:为一级汉字区,包含3755个汉字。这些区中的汉字按汉语拼音顺序排序,同音字按笔画顺序列出。
③56 -87区:为二级汉字区,包含3008个汉字。这些区中的汉字是按部首笔划顺序排序的。
④88 -94区:为自定义汉字区。
国标码规定,每个汉字(包括非汉字的一些符号)由2字节代码表示。每个字节的最高位为0,只使用低7位,而低7位的编码中又有34个适用于控制用的,这样每个字节只有27 - 34 = 94个编码用于汉字。2个字节就有94 94=8836个汉字编码。在表示一个汉字的2个字节中,高字节对应编码表中的行号,称为区号;低字节对应编码表中的列号,称为位号。
汉字国标码的范围用二进制表示是:00100001 00100001 01111110 01111110 (1+32)10 (1+32)10 (94+32)10 (94+32)10 7位ASCII码是128个字符组成的字符集。其中编码值0 31(00000000 00011111)不对应任何印刷字符,通常称为控制符,用于计算机通信中的通信控制或对计算机设备的功能控制。编码值32(00100000)是空格字符SP。编码值127(1111111)是删除字符DEL。
汉字国标码的起始二进制位置选择00100001即(33)10是为了跳过ASCII码的32个控制字符和空格字符。所以,汉字国标码的高位和低位分别比对应的区位码大(32)10或(00100000)2或(20)H,即:国标码高位= 区码+ 20H (H表示十六进制)国标码低位= 位码+ 20H
2) 汉字机内码(内码)(汉字存储码)
汉字机内码(内码)(汉字存储码)的作用是统一了各种不同的汉字输入码在计算机内部的表示。为了将汉字的各种输入码在计算机内部统一起来,就有了专用于计算机内部存储汉字使用的汉字机内码,用以将输入时使用的多种汉字输入码统一转换成汉字机内码进行存储,以方便机内的汉字处理汉字机内码是在计算机内部存储、处理的代码。计算机既要处理汉字,又要处理英文。因此计算机必须能区别汉字字符和英文字符。英文字符的的机内码是最高为为0的8位ASCII码。为了不与7位ASCII码发生冲突,把国标码每个字节的最高位由0改为1,其余位不变的编码作为汉字字符的机内码。
汉字机内码的范围用二进制表示是:10100001 10100001 11111110 11111110 机内码的高位和低位比对应的国标码的高位和低位大(128)10或(10000000)2或(80)H 即:机内码高位= 国标码高位+ 80H 机内码低位= 国标码低位+ 80H 又因为:国标码高位= 区码+ 20H 国标码低位= 位码+ 20H 所以:机内码高位= 区码+ A0H 机内码低位= 位码+ A0H 也就是说,机内码高位和机内码低位分别比对应的区码和位码大(160)10或(10100000)2或(A0)H 例如:汉字"啊"的区位码为"1601",其中区码为(16)10或(10)H,位码为(01)10或(01)H。则:机内码高位= 10H + A0H = B0H 机内码低位= 01H + A0H = A1H 所以:机内码= B0A1H
3) 汉字输入码(外码)
汉字输入码(外码)是为了通过键盘字符把汉字输入计算机而设计的一种编码。英文输入时,相输入什么字符便按什么键,输入码和机内码一致。汉字输入时,可能要按几个键才能输入一个汉字。汉字输入方案有成百上千个,但是这千差万别的外码输入进计算机后都会转换成统一的内码。汉字输入方案大致可分为以下4种类型:
(1)音码:如全拼、双拼、微软拼音等
(2)形码:如五笔字型、郑码、表形码等
(3)音形码:如智能ABC、自然码等
(4)数字码:如区位码、电报码等
4) 汉字字形码(输出码)
汉字字形码(输出码)用于汉字的显示和打印,是汉字字形的数字化信息。汉字的内码是用数字代码来表示汉字,但是为了在输出时让人们看到汉字,就必须输出汉字的字形。在汉字系统中,一般采用点阵来表示字形。16 *16汉字点阵示意16 * 16点阵字形的字要使用32个字节(16 * 16/8=32)存储,24 * 24点阵字形的字要使用72个字节(24 * 24/8=72)存储。