第2章 计算机中信息的表示方法pptconvertor
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章计算机中信息的表示方法
2.1概述
计算机要对各种信息或数据进行处理,首先遇到的第一问题是必须将各种信息以计算机可以识别的方式表示,并且以一定的形式存储在计算机(存储器)中。
现代计算机大都是以二进制表示的数字计算机。
采用二进制,这是因为二进制数只有“0”和“1”两个不同的数字符号,易于用物理器件实现,如晶体管的“截止/导通”、电容的“有电荷/无电荷”、平面的“有反射光/无反射光”。
只要规定一个状态表示“1”另一状态表示“0”即可。
同时,二进制数的运算规则简单:
0+0=0;1+0=1;0+1=1;1+1=0并向高位进1;
0-0=0,1-1=0;1-0=1;0-1=1从高位借1;
1×1=1;1×0=0;0×1=0;0×0=0),运算器易于用电子元件实现。
本章主要内容包括:
①数据的定义及分类;
②不同进制数值数据之间的相互转换方法;
③什么是机器数?数值数据的符号及小数点如何用“0”和“1”表示成机器数。
④原码、补码、反码的定义、求法、特点、所表示的真值数的范围。
⑤定点数与浮点数的概念。
⑥非数值数据(字符、文字、图形、图像、声音)机器数表示方法。
数据表示研究的是计算机硬件能够直接识别,可以被指令系统直接调用的数据类型。
国际标准化组织(ISO)对数据和信息都进行了专门定义:
其中数据定义是:“数据是对事实、概念或指令的一种特殊表达形式,这种特殊表达形式可以用人工的方式或自动化装置进行通信、翻译转换或者进行加工处理”。
数字、文字、符号、图形、图像、声音都包括在数据范畴中。
数据的概念要比人们日常生活中理解的“可以比较其大小的数值”广泛的多。
信息的定义是:“信息是对人有用的数据,可能影响人们的行为和决策的数据”。
计算机对信息进行处理,实质上是由计算机对数据进行加工处理得到对人类有用的信息过程,不同的部门根据得到的信息产生的决策和行动也往往不同。
在很多场合,数据和信息往往并不严格加以区别。
数据
数值数据
非数值数据
文字、字符
图形、图像
声音
数据类型
无符号数
有符号数
2.2数据信息的机内表示方法
2.2.1数值数据在机内的表示
数值数据是计算机进行算术运算所使用的操作数,它有大小,可以在数轴上表示出来。
数值数据又分有符号数和无符号数,无符号数常用来表示存储单元的物理地址。
表示一个数值数据有三个基本的要素:
①进位计数制;
②小数点的表示;
③符号的表示。
2.2.2进位计数制及相互转换
1.进位计数制
按照一定进位方法进行计数的数制称为进位计数制,简称进制。
在日常生活中,人们习惯使用的进制是十进制(Decimal),但在计算机内部采用的进制却是二进制(Binary)。
由于用二进制表示的数的位数长,书写不便,为了便于书写常采用八进制(Octal)和十六进制(Hexadecimal)作为中间进制。
要将一个数表示成计算机可以识别的二进制数,首先必须将各种不同进制的数转换成二进制数。
一个任意进制可以表示为:
S=∑Ki×R Ki={0,1,2,…R-1}
(1)基数
进制是以表示数值可以选用基本数码的个数来命名的,计数制允许选用的基本数码的个数称为基数(简称基),用R表示。
i
(2)权
在进位计数制中,同一个数码处在数的不同位置上,它所代表的数值的大小是不同的。
每一个数位被赋于R 的数值称为位权,简称权。
(3)进位计数制的按权展开式
在进位计数制中,每个数位的数值等于该位数码与该位的权之乘积,若用Ki×R 表示第i 位的数码,则该位的数值为KiR。
各种进位制的数都可以写成按权展开的多项式和的形式,一个以R为基数的数S可表示为:
i
i
i
S=∑Ki×R =Kn×R + Kn-1×R……+ K1×R + K0×R + K-1×R + K-2 ×R + ……+K-m×R =S1.S0
其中:S的整数部分:
S1= Kn×R + Kn-1×R……+ K1×R + K0×R
S的小数部分:
S0= K-1×R + K-2×R + ……K-m×R
2.进位计数制之间的相互转换
(1)二进制数、八进制数、十六进制数转换成十进制数
二进制、八进制、十六进制数转换成十进制数常用的方法是“按权展开转换法”。
具体做法是二进制、八进制、十六进制数按照权展开,然后再按照十进制求和,结果就是所要的十进制数。
【例2-1】将二进制数1100.11转换成十进制。
(1100.11)2=2 +2 +2 +2 =8+4+0.5+0.25=12.75
3
2
-1
-2
【例2-2】将八进制数266.2转换成十进制。
(266.2)=2×8 +6×8 +6×8 +2×8 =128+48+6+0.25=182.25
2
1
-1
8
【例2-3】将十六进制数0A3.4转换成十进制。
(0A3.4)=10×16 +3×16 +4×16 =160+3+0.25=163.25
(2)十进制数转换成二进制数
十进制实数既有整数部分,又有小数部分,其转换方法是将整数部分和小数部分分别转换,然后将这两部分拼起来即可。
有减权定位法和除2取余法(小数乘2取整法)两种方法。
【例2-8】将十进制数63.6875转换成二进制数
(63)10=(111111)2
(0.6875)10=(0.1011)2
所以(63.6875)10=(111111.1011)2
(3)二进制数转换成八进制数,十六进制数
因为八、十六进制的基数分别为8=2 和16=2,所以二进制数转成八进制数和十六进制数时非常简单:三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数。
①二进制数转换到八进制数
二进制数转换八进制数的方法是:从小数点的位置开始,整数部分向左、小数部分向右,每三位二进制数分为一组,对应一位八进制数,不足三位者补零,整数在高位补,小数在末位补。
(保证补0不影响数的大小)
3
4
【例2-9】将二进制数10110101.1011转换为八进制数
(10110101.1011)2=(010 110 101.101 100)2 =(265.54)8
②二进制数到十六进制数的转换
二进制数到十六进制数的转换方法与二进制数到八进制数转换方法类似,每四位二进制数对应一位十六进制数。
【例2-10】将二进制数11110110101.10101转换到十六进制数
(11110110101.10101)2=(0111 1011 0101.1010 1000)2= (7B5.A8)16
(4)八进制数、十六进制数转换成二进制数
①八进制数转换成二进制数
八进制数转换成二进制数的方法是:每一位八进制数用相应的三位二进制数代替。
其中整数中的最高位,小数部分的末位0可以省去不写。
【例2-11】将八进制数(75.26)8转换二进制数
(75.26)8=(111 101.010 110)2= (111101.01011)2
②十六进制数转换成二进制数
十六进制数转换成二进制数的方法是:每一位十六进制数用相应的四位二进制数代替。
其中整数中的最高位,小数部分的末位0可以省去不写。
【例2-12】将十六进制数(48.A)16转换二进制数
(48.A)16=(0100 1000.1010)2 =(1001000.101)2=(110.5)8
各进制数之间的转换如图所示。
一位八进制表示三位二进制
数据进制之间相互转换示意图
四位二进制表示一位十六进制
一位十六进制表示四位二进制
三位二进制表示一位八进制
按照权展开,再按照十进制相加
整数部分除以2取余;小数部分乘以2取整
从上面例2-11可以看出,同一数值表示成不同进制形式时,基数R越大,数码就越短,字码形式越多,分辨率越高。
但到目前为止,计算机内部信息都是采用二进制形式表示,这主要因为:
①二进制形式便于物理元件的实现
二进制数只有“0”和“1”两个数字,因此,可以用物理元件的两种稳定状态来表示。
例如:晶体管的导通和截止,只要规定其中一个状态为"1",另一个状态就为"0",就可以表示二进制数了。
要找到有十种稳定状态的物理元件表示十进制数是很困难的。
②二进制运算规则简单
十进制数作乘法运算时,需用九九乘法表,而二进制乘法运算规则只有四个:
0×0=0;0×1=0;1×0=0;1×1=1
二进制数运算方法简单,实现运算的电路也相应简单。
可以用二进制数码“0”、“1”表示真、假逻辑量,可使计算机方便地进行逻辑运算。
二进制也有书写冗长,阅读不便的缺点,所以,人们在书写和表达时常用既能克服二进制缺点,又能与二进制直接转换的八进制和十六进制作为中间过渡进制。
2.2.3数的符号表示
由于计算机中只有“0”“1”字符,所以符号也必须用“0”“1”来表示,即数字化。
机器数:数在计算机中的二进制表示形式称为机器数。
1.无符号数和有符号数
机器数通常有两种形式,无符号数和有符号数。
无符号数:机器数的所有二进制位都用来表示数值,称无符号数。
一般在全部正数运算且不出现负值结果的场合可以省略符号位,使用无符号数表示,常用于表示地址。
有符号数:将数的符号也数值化的数(连同符号一起用二进制数来表示的数)称为有符号数。
通常用“0”表示“+”号,“1”表示“−”号,符号放在二进制数的最高位,称为符号位。
真值:因为符号在计算机中占据一位,机器数的形式值就不等于真正的数值,为了区别起见,我们把带符号位的机器数所对应的数值称为机器数的真值。
2.有符号数的表示
在计算机中有符号数的表示是将符号和数一起进行编码,常用的编码有原码、补码和反码。
在这些编码中,通常用一位(一般是最高位)来表示符号,剩余的位数表示数值部分的编码。
(1)原码表示法
在原码表示法中,最高位为符号位,其余位为数的绝对值。
①原码的定义(机器字长为n+1,其中一位符号位)
②原码的求法
原码表示直观,与真值的转换方便,只要将真值符号位的“+”用“0”,“-”用“1”表示,剩下的位数就是真值的绝对值了。
用原码表示的机器数进行乘除运算比较方便,只要将数值部分直接乘除,符号位相异或就可以获得正确的结果。
但是进行加减运算时,既要考虑数的绝对值大小又要考虑数的符号,比较麻烦。
原码的另一个缺点是零的表示不是惟一的(假设机器字长为4):
[+0]原=0.000 [-0]原=1.000 (小数)
[+0]原=0000 [-0]原=1000 (整数)
(2)补码表示法
为了克服原码表示法的上述两个缺点,引入了补码的概念,补码表示的数在进行加减运算时,符号位可以看成数值一起参加运算,只要不溢出(数的大小超过机器数表示的范围称溢出)结果都是正确的,从而简化了加减法运算规则,简化了运算器的设计。
①模和同余的概念
模:一个计量器的容量或一个计量单位叫做模或模数,记作M。
如四位二进制数它的模M=2 =16。
同余:设a,b两整数被同一正整数M去除而余数相同,则称a、b对M同余。
记为a=b(mod M)。
如:9÷12=(12-3)÷12=1+(-3)÷12 即9和-3是关于模12是同余的。
具有同余关系的两个数具有互补关系,即-3的补码是9。
这样求一个负数的补码就将模加上该负数即可:(-3)+ 12 =9。
4
②补码的定义(机器字长为n+1,其中一位符号位)
③求法
从补码的定义可以看出,正数的补码和原码相同,都等于真值。
负数的补码可以用定义来求,也可以用更直观的方法来求:原码除符号位外按位取反再在最低位加1(符号位用1表示,数字位直接取反再在最低位加1)。
【例2-12】求X=-1100的补码(机器字长为5位)
[X]补=10011+1=10100
【例2-13】求X=-0.1100的补码(机器字长为5位)
[X]补=1.0011+0.0001=1.0100
补码求真值:正数的补码求真值同原码一样。
负数补码除符号位外按位取反再在最低位加1得原码,然后由原码得真值。
【例2-14】求[X]补=10100的真值
除符号位外按位取反再在末位加1 (得到原码)=11011+1=11100
真值X=-1100
④补码的表示范围(机器字长为n+1位)
小数:-1≤X≤1-2
整数:-2≤X≤2 -1
在补码的定义中负数的定义域扩大了一个数,且不再有负零。
补码的零只有一种表示:
[0]补=[-0]补=[+0]补=0000
练习题
-n
(3)反码的表示法
反码一般用来作为原码求补码或补码求原码的工具,计算机中很少直接采用反码进行数的运算。
①反码定义:
根据定义,正数的反码与原码相同,负数的反码将符号位用“1”表示,数值位按位取反即可。
反码的表示范围与原码的表示范围是一样的。
(4)三种码的比较
①最高位表示符号位,“1”表示负数,“0”表示正数。
②三种码的正数表示相同。
③负数的原码、补码和反码符号位用“1”,原码的数值部分是真值的数值部分,反码是“按位取反”,补码是真值的数值“按位取反末位加1”。
④原码适合乘除运算。
补码适合加减运算,在运算过程中符号位和数值位一起参加运算。
只要不超过数的表示范围,结果都是正确的。
(这一点在第3章中讨论)
⑤原码和反码所能表示的数是关于0对称的,整数±(2 -1 ),小数为±(1-2 )
⑥补码在负数上多一个最小负数,即整数: -2 ,小数为-1。
⑦原码和反码有±0,而补码中0的表示是惟一的。
n
2.2.4数的小数点表示
在进行算术运算时,需要指出小数点的位置,在计算机中,小数点有两种表示方法:定点表示法和浮点表示法。
1.定点表示法
定点表示法约定数据的小数点的位置固定不变,小数的小数点通常放在有效数字的前面符号的后面,整数的小数点就放在有效数字的末尾,这就形成了定点小数和定点整数。
无论是整数还是小数,小数点都是以隐含的方式来表示,不占有效的数据位,这样做的目的是字长一定的计算机,数的表示范围最大。
只有定点数据的计算机称为定点计算机。
定点计算机只能表示纯小数或整数,所能表示的数的范围有限,尤其是定点小数,数的表示范围小于1,这在实际使用时是很不方便的,现代计算机大多采用浮点表示法。
假设机器字长为n+1位,其中有一位是符号位,三种不同的编码定点数的表示范围为:
小数:
原码:-(1-2 )≤X≤1-2
补码:-1≤X≤1-2
反码:-(1-2 ) ≤X≤1-2
整数:
原码:-(2 -1)≤X≤2 -1
补码:-2 ≤X≤2 -1
反码:-(2 -1)≤X≤2 -1
-n
n
n
假设机器字长为n+1位
2.浮点表示法
任意一实数,皆有整数部分又有小数部分,是没有办法直接采用隐含方式来表示小数点位置的,这时可以采用浮点法来表示。
对于任意一数N,采用科学计数N=M·R =±m·R 。
其中,m中小数点的位置随着E的变化而左右移动,小数点左移一位,E加1,小数点右移一位,E减1。
在这种表示方法中,小数点的位不是固定的而是可以左右移动,我们称之为浮点表示法。
±E
±E
在浮点表示法中,E称为浮点数的阶数,用定点整数表示,一般采用补码或移码表示。
M称浮点数的尾数,用定点小数表示。
尾数的符号表示数的正负。
R是阶码的底,又称尾数的基数(简称基)。
在二进制中,基为2,在机器数中一般可以省略,以隐含的方式表示。
3.规格化浮点数及其表示范围。
一个浮点数可以写成多种形式,
如0.001=0.0001×2 =0.010×2
一般来说,尾数右移k位(在计算机中小数点都是以定点隐含方式给出的,尾数右移相当于小数点左移,尾数左移相当于小数点右移。
),阶码就要加k,尾数左移k位,阶码就要减k,这样才能保持整个浮点数的值不变。
用浮点数表示的数不是惟一的,给计算机系统的处理带来了很大的麻烦,为使浮点数表示惟一,常采用规格化的浮点数来表示。
当基是2时,规格化的浮点数的尾数为:±0.1××××···
则规格化的浮点数尾数所对应的:
正数的原、补码:0.1××××···
负数的原码: 1.1××××···
负数的补码: 1.0××××···
对于非规格化的浮点数,总是可以通过尾数移位和调整阶码的方法将其转化成规格化的浮点数。
规格化的浮点数表示是惟一的。
4.移码
在浮点数中,阶码可正可负,在进行加减运算时必须先进行对阶操作(两个操作数的阶码相同,尾数才能相加减),对阶要比较数的大小(比较符号位),操作比较复杂。
为了克服这一缺点,将阶码用移码表示,使阶码不出现负数。
移码的定义:如果阶码有n+1位,则阶码X的移码为:
[X]移=2 +X —2 ≤X≤2
其中2 为偏置常数
n
移码表示的数全0为最小,全1 为最大,移码的大小直观地反映了真值的大小,不必考虑符号位,这样,在浮点运算中对阶就比较方便了。
在移码表示中,当X<0,[X]移最高位为0,当X≥0时,[X]移最高位为1,所以最高位仍然可以看成符号位,只是与原码、反码表示相反。
[X]移与[X]补除符号位外其他位都相同。
在移码中0有惟一的编码[000···0] 移=1000···0。
[X]移等于全0时,表明阶码最小。
5.IEEE754标准浮点格式
现代计算机中,浮点数一般采用IEEE制定的IEEE754标准浮点格式,其规定的浮点数格式为:
按照IEEE标准,规定的浮点数有3种:
短实数又称为单精度浮点数。
长实数又称为双精度浮点数。
临时实数主要用于进行浮点数运算时,保存临时的计算结果。
通常在进行运算时短实数或长实数都转换临时实数。
运算完后再转换回去。
以32位短实数为例,最高是数符,其后是8位阶码,用移码表示,但偏置常数为2 −1=127,而不是2 =128,隐含以2为基数。
其余23位为尾数。
尾数用原码表示。
由于尾数采用规格化表示,尾数的最高位总是1,故在标准中不被直接表示,实际位数是24位。
在IEEE754标准浮点格式中,阶数是整数,尾数是纯小数,小数点仍然可以采用前面讨论的定点数的方法,以隐含的方式表示,不占用有效的数值位。
在浮点数表示中,阶数的位数决定了数的表示范围,阶数位数越多,表示的数的范围越大,尾数的位数决定了数的表示精度,尾数位数越多,表示的数的精度越高。
浮点数的表示和计
算要比定点数复杂的多。
例.将二进制数+1101.101用规格化浮点数格式表示。
格式要求:阶码4位,含1位符号位;尾数8位,含1位符号位。
阶码和尾数均用补码表示,阶码以2为底。
解:首先规格化:1101.101=0.1101101×2
尾数的补码:[0.1101101]补=0.1101101
4
2.2.5十进制数据的表示
十进制数在计算机中是以十进制的二进制编码BCD(Binary Coded Decimal)码来表示的。
大多数计算机都有专门的十进制运算指令,可以对十进制数直接进行处理。
4位二进制共有16种状态,用4位二进制表示1位十进制,有多余的六个状态,所以有多种表示方法,可以产生多种BCD码。
1.十进制数据有权码
十进制数据有权码是指表示每一个十进制数位的四个二进制位(称为基2码)都有一个确定的权。
常见的有8421码(也称自然码Nature,NBCD);2421码;5211码;84-2-1码;4311码。
除8421码外,其他几种有权码具有以下特点:
任何两个十进制数位相加产生10或大于10时,相应的基2码会在最高位向左产生进位,便于实现逢十进一的计数和加法规则。
任何两个数相加之和等于9的十进制数位的基2码互为反码,即满足二进制数按9互补的关系。
2.十进制数据无权码
十进制数据无权码是指表示每一个十进制数位的四个二进制位没有一个确定的权。
常用的有余3码和格雷码(又称循环码)
余3码的编码规则是在8421码的基础上,将每一个代码都加0011而形成。
其主要优点是执
格雷码(又称循环码)其编码规则是任何两个相邻的代码只有一个二进制位不同,其余三位必须相同。
这样使得从一个编码变到下一个编码时只有一位发生变化,变码速度最快,有利于得到更好的译码波形,故在D/A和A/D转换电路中得到很好的运行结果。
并且用数字逻辑电路实现时不会产生冒险竞争。
2.3非数值数据的表示
字符、汉字、图形、图像、语言以及逻辑数据统称为非数值数据。
它们在计算机中也是用“0”“1”编码来表示的。
2.3.1逻辑数据
逻辑数据有若干位二进制数字组成,每位之间没有权的内在联系,只有逻辑值:“真”和“假”。
逻辑数据只能参加逻辑运算,如逻辑与、逻辑或、逻辑非,特点是只进行本位操作。
2.3.2字符编码
字符也必须用“0”“1”表示。
使用最广泛的就是ASCII(American Standard Code For Information Interchange 美国标准信息交换码)码。
在这种编码中,每个字符用8个二进制位来存储和发送。
最高位一般设置为“0”或用作数据传输时错误检测的奇偶校验位。
余下的七位最多可以表示128个不同的字符。
P27
在ASCII码中,数字0~9的ASCII码(0110000~0111001)的低四位同0~9的BCD码(0000~1001)完全一样。
与另外一种EBCDIC 码(Extended Binary Coded Decimal Interchange Code)表示的0~9的低四位(11110000~11111001)也是一样的。
由ASCII码可以很方便地获得BCD码,将ASCII与0FH相“与”就可以获得BCD码。
数字的ASCII码=30H+数字的BCD码。
AND
26个英文字母分大、小写。
大写字母A~Z的ASCII从01000001~01011010(41H ~5AH)
是连续的,小写字母a~z的ASCII从01100001~01111010 (61H ~7AH)是连续的,且大、小字母的ASCII码只有第6位不同(小写字母这一位是1,大写这一位是0),这使得大、小写字母之间的转换非常方便。
小写字母ASCII码=大写字母ASCII码+00100000(20H)。
将小写字母ASCII码与“11011111(DFH)”相“与”就得到大写字母ASCII码。
2.3.3汉字编码
中文信息的基本组成单位是汉字,汉字也是字符,但汉字是表意文字,一个汉字就是一个方块图形。
汉字有以下特点:
汉字是一种象形文字,据统计有50000字形各异的汉字,常用汉字有7000左右;
汉字字型结构复杂,笔画繁多;
汉字重音字多;“在”、“再”、“zai”
汉字多音字多。
“好hao吃”、“好hao吃”
计算机要对汉字信息进行处理,首先必须将汉字转换成计算机可以接收的“0”“1”组成的编码输入计算机,称为汉字输入码。
输入码进入计算机必须转换成汉字内码(机内码)才能进行信息处理。
为了使不同的汉字处理系统之间能够交换信息,还必须设有汉字交换码。
为了最终显示、打印汉字,内码必须转换成汉字字形码(字模)。
1.汉字输入码
计算机是西方国家发明的,而西文只要用很少的键就可以输入所有的信息。
要用西文键盘输入汉字,首先必须解决汉字输入问题,这就是汉字输入码要解决的问题。
汉字的输入方法很多,常用的主要有以下几种:
(1)数字编码
国际区位码是最常用的数字编码,它是将汉字字符集编成94行(区)×94列(位)的表,每个汉字对应表中惟一的位置号,这个号就是区位码。
分区号(01~94)和位号(01~94),区号在前位号在后,用四位数字来表示。
如1122表示汉字“多”,每输入一个汉字必须敲4次键盘。
特点是没有重码,输入时可以完全实现盲打,难以记忆,不易推广。
(2)字音编码
是一种基于汉语拼音的编码方法。
主要有全拼、双拼以及智能ABC等。
特点是只要会汉语拼音就能输入汉字,不需要再进行复杂的系统训练,是目前绝大部分非专业人员输入汉字的首选输入法。
由于汉字同音字多,重码率高,不能做到盲打,速度不如汉字五笔输入法。
(3)字形编码
这是根据汉字的字形分类而给出的编码方法。
如汉字五笔输入法,特点是输入速度快,需要通过训练才可以达到较快的输入速度,通常只有专业的文字录入人员才使用这种方法。
(4)形音编码
形音编码是将字音编码和字形编码相结合的一种编码方法。
如首尾编码是利用汉字的左上角和右下角的笔形(字形编码法)和汉字的第一个音符所对应的拼音字母(字音编码)的一种编码方法。
除了上面的输入法外,还有手写输入法、语言输入法,这些方法比较适合老年人。
2.汉字交换码
这是在两个汉字处理系统之间进行汉字交换时使用的编码,也称国标码。
同一个汉字在不同的计算机系统中可以采用不同的表示方法(机内码)。
但在不同系统之间要交换信息时,必须采用统一标准规范,否则难以进行交换。
为此,我国已制定并颁布了国家标准《GB2312-80信息交换用汉字编码字符集——基本集》,简称国标码。
(书同文)
该字符集规定了常用汉字6763个和一些其他字符(俄文字母、日语假名、拉丁字母、希腊字母、汉语拼音和一般图形字符)682个。
在交换码中的每个字符用两个字节进行编码,每个字节的低7位表示信息,最高位为零,共有2 个编码。
国标码与区位码有简单的对应关系:
国标码=区位码+2020H。
加2020H的目的是使两个字符都避免与码的控制字符冲突。
14
3.汉字机内码
这是汉字信息处理系统在计算机内部存储和处理汉字信息时使用的编码。
不同计算机系统可以使用不同的机内码,但同一计算机系统中汉字机内码应该相同,而且不同计算机之间在交换汉字信息时都必须将汉字机内码转换成标准的交换码(GB3212-80)。
另外,汉字系统中机内码在编码时必须考虑到既能与ASCII码严格区分,又能与国标码有简单的对应关系,因此,机内码的编码方案应能在国标码的基础上方便地得到。
常用的方案是把国标码的每一个字节的最高位的0变成1,其他各位的信息保持不变。
Big5、CJK 、Unicode
如“大”的国标码为3473H(对应的二进制00110100,01110011B),汉字机内码为B4F3H (对应的二进制10110100,11110011B)。
汉字机内码与国标码和区位码之间的关系为:
机内码=国标码+8080H=区位码+0A0A0H
在一个处理汉字信息系统的计算机内部,区分计算机内部信息是一个ASCII编码的字符还是汉字编码的字符,只要判别连续两个字节的最高位是否为1。
若为1,这连续的两个字节构成一个汉字,否则该字节的低7位是一个ASCII编码的字符。
4.汉字的字形码
计算机中的汉字内码是不能直接在屏幕上显示和打印的,必须把它转换成对应的汉字字形码,一般通过点阵图的形式产生,用1表示黑点,0表示白点,图2-3字符A的点阵图。
汉字字库就是存放全部汉字字形点阵码的存储空间及读取程序。
汉字信息处理系统中一定要包含字库,以便计算机在屏幕上显示或打印机上打印汉字。
C:\WINDOWS\Fonts
汉字信息处理过程
2.3.4图像(图形)的数字表示
一幅模拟连续的图像在输入到计算机时,必须通过输入设备(扫描仪、摄像机等)将其转换为数字图像才能存储和处理。
图像的数字化包括采样和量化两个步骤:
空间坐标的数字化称图像采样,颜色的数字化称为图像的量化。
x
y
连续图像f(x,y)可按等间隔采样,将(x, y)平面分成网眼似的小方格,则f(x, y)可表示为一个m×n二维的数组,数组中的每个元素称为像素。
每个像素的颜色(灰度或彩色信号的色彩)再进行数字化,通常用k级(k=2 p是表示每个像素的颜色的二进制位数)来表示。
存储一幅图像的大小B=(m×n×p)bits
1024×768×32bits=3MB
p
2.3.5语言的计算机表示
语音通过拾音设备转换成频率、幅度连续变化的电信号(模拟量),然后通过声卡对模拟量进行采样(标准的采样频率为11.025kHz,22.05kHz和44.1kHz,)得到离散信号,再将离散信号经过模数转换(A/D)转换得到数字信号。
A/D转换可以是8位,也可以是16位的样本值。
模拟量转换数字量。