版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据表示方法2-1数据表示方法和运算器
2-2逻辑部件
2-3控制部件
2.1数据表示方法和运算器
2.1.1计算机中数据的表示方法
当前的计算机所采用的存储器件都是两态器件,所以适合于存放二进制数据。尽管为了方便起见,也使用其他进制,如十进制、十六进制,但是在计算机内部数据还是以二进制的形式存放和处理。二进制只使用了两个不同的数字符号,易于用物理器件来实现:在物理世界中具有两个稳定状态的物理器件很多,如晶体管的“截止”与“导通”、电容的“充电”与“放电”、电压信号的“高”与“低”、脉冲的“有”与“无”,电磁单元的“正向磁化”与“反向磁化”等等,只要规定其中一种稳定状态表示“1”,另一种稳定状态表示“0”,就可以用来表示二进制数位了。其次,二进制的运算规则非常简单,易于用电子器件来实现。数据的类型多种多样,如文件、图、表、树、阵列、链表、栈、向量、串、实数、整数、布尔数、字符等。计算机里用到的数据类型主要可分为两类:表示数量的数值数据和非数值性的符号数据。所有的数据都是以二进制的形式在计算机里处理和存储。本节主要讲述数值数据在计算机里的表示方法。
1.数值数据表示方法在计算机中表示数时,需要考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数)、符号如何表示以及小数点的位置;可能遇到的数值范围;数值精确度;数据存储和处理所需要的硬件代价。计算机中表示数值符号的方法是占用一位二进制位,1表示负号、0表示正号。常用的数值数据表示格式有两种,根据小数点的位置是固定不变还是浮动变化的分为定点格式和浮点格式。一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。(1)定点数的表示方法所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。
例如用一个n+1位字来表示一个定点数x,其中一位x0用来表示数的符号,其余位数代表它的量值。为了将整个n+1位统一处理起见,符号位x0放在最左位置,并用数值0和1分别代表正号和负号,这样,对于任意定点数x=x0x1x2…xn,在定点机中可表示为如下形式:
x0x1x2……xn-1xn符号←数量值→
如果数x表示的是纯小数,那么小数点位于x0和x1之间。当x0x1x2…xn各位均为0时,数x的绝对值最小,当各位均为1时,x的绝对值最大,故数的表示范围为0≤▕x▏≤1—2-n
如果数x表示的是纯整数,那么小数点位于最低位xn的右边,此时数x的表示范围为0≤▕x▏≤2n-1,目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。
(2)浮点数的表示方法采用浮点表示法表示的数据叫做浮点数,采用浮点数进行运算的机器叫做“浮点机”。浮点数是指小数点位置可以改变的数,显然浮点数可用来表示带符号的实数。例如:表示8位字长的二进制浮点数可以写成
±0.10110101×2±111▏←尾数→▕↑阶码
任意一个十进制数N可以写成N=10Z×X,同样,在计算机中一个任意进制数N可以写成N=Bz×X其中X称为浮点数的尾数,是一个纯小数。z是比例因子的指数,称为浮点的指数,是一个整数。比例因子的基数B是一个常数,一般规定只为2,8或16。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出指数,用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位。因此一个机器浮点数应当由阶码和尾数及其符号位组成:
32位浮点数的标准格式为:
Z0Z1Z2……Zn-1ZnX0X1X2……
Xn-1Xn阶符←阶码→数符←尾数→
31302322032位浮点数F←Z→←X
→64位浮点数的标准格式为:
63625251064位浮点数F←Z→←X
→不论是32位浮点数还是64位浮点数,规定基数B=2。由于基数2是固定常数,不必用显示方式来表示它。32位的浮点数中,F是浮点数的符号位,占1位,安排在最高位,F=0表示正数,F=1表示负数。X是尾数,放在低位部分,占用23位,用小数表示,小数点放在尾数域的最前面。Z是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数值z变成阶码Z时,应将指数z加上一个固定的偏移值127(01111111),即Z=z+127。一个规格化的32位浮点数X的值可表示为X=(-1)F×(1.X)×2E-127
其中尾数域所表示的值是1.X。因为规格化的浮点数的尾数域最左位也即最高有效位总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。
64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数X的真值为X=(-1)F×(1.X)×2E—1O23z=E-1023若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。例如0.5也可以表示成0.05×101,50×10—2等等。为了提高数据的表示精度,当尾数的值不为0时,其绝对值应≥0.5,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的办法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。当一个浮点数的尾数为0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。浮点数所表示的范围远比定点数大的多。假设(考虑符号位)机器中的数由8位二进制数表示时:在定点机中这8位全部用来表示有效数字(包括符号);在浮点机中若阶符阶码占3位,数符尾数占5位。在此情况下,若只考虑正数值,定点机小数表示的数的范围是0.0000000到0.1111111,相当于十进制数的0到127,而浮点机所能表示的数的范围是2-11×0.0001到211×0.1111,相当于十进制数的1/128~7.5。显然,都用8位,浮点机能表示的数的范围比定点机大得多。
一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。【例2.1】若浮点数X0的二进制存储格式为(43240000)16,求其32位浮点数的十进制值。解:将16进制数展开后,可得二制数格式为01000011001001000000000000000000↑↑↑↑↑
F阶码(8位)尾数(23位)指数z=阶码—127=10000110—01111111=00000111=(7)10。包括隐藏位1的尾数1.X=1.01001000000000000000000=1.010010于是有
X0=(—1)F×1.X×2z=+(1.010010)×27=+10100100=(187)10。
【例例2..2】】将将十十进进制制数数16..59375转转换换成成32位位浮浮点点数数的的二二进进制制格格式式来来存存储储。。解::首首先先分分别别将将整整数数和和分分数数部部分分转转换换成成二二进进制制数数::16..59375==10000..10011移移动动小小数数点点,,使使其其在在第第1位位和和第第2位位之之间间10000..10011==1..000010011××24z==4所以以::F=0,,E=4++127=131,,X=000010011则得得到到的的32位位浮浮点点数数的的二二进进制制存存储储格格式式为为::01000001100001001100000000000000=(4184C000)16(3)定定点点数数据据的的编编码码方方法法①真值值与与机机器器码码机器器码码是是数数在在计计算算机机中中的的表表示示形形式式。。对对于于数数值值数数据据而而言言,,无论论以以定定点点形形式式表表示示或或是是以以浮浮点点形形式式表表示示,,都都需需要要通通过过某某种编编码码方方法法,,以以计计算算机机所所能能处处理理的的0和和1二二进进制制位位来来表表示示其数数值值大大小小。。通通常常一一个个数数值值数数据据的的机机内内表表示示形形式式称称为为其其机机器码码,,而而一一个个机机器器码码所所代代表表的的数数值值称称为为该该机机器器码码的的真真值值。。计算算机机中中只只有有机机器器码码,,不不存存在在数数的的真真值值。。假设设机机器器码码的的宽宽度度为为n,,最高高位位为为符符号号位位,,下下面面分分别别介介绍绍实际际应应用用中中常常见见的的4种种机机器器码码编编码码方方法法::原原码码、、反反码码、、补补码和和移移码码。。②原码码表表示示法法定点点整整数数原原码码表表示示法法定点点整整数数原原码码的的定定义义如如下下所所示示::[X]原=X0≤X<2n-1[X]原=2n-1-X-2n-1<X≤0由定定义义可可以以看看出出,,正正整整数数的的原原码码就就是是其其自自身身,,负负整整数数的的原原码码只只需需把把其其绝绝对对值值的的原原码码的的符符号号位位置置为为1即即可可。。(用用0表表示示正正号号,,用用1表表示示负负号号)。。原原码码表表示示方方法法的的定定点点整整数数的的取取值值范范围围为为--(2n--1-)≤≤X≤≤2n--1-1。。注意意在在原原码码表表示示法法中中,,零零有有正正零零和和负负零零之之分分。。[++0]==0000……0,,[--0]==1000……0。。定点点小小数数的的原原码码表表示示法法定点点小小数数原原码码的的定定义义如如下下所所示示::[X]原=X0≤X<1[X]原=1-X-1<X≤0正的的纯纯小小数数的的原原码码就就是是其其自自身身,,而而负负的的纯纯小小数数的的原原码码可可以以通通过过把把其其绝绝对对值值的的原原码码的的符符号号位位置置1来来得得到到。。其其取取值值范范围围为为--(1--2-(n--1))≤≤X≤≤(1--2-(n--1))。。综上上可可以以看看出出一一个个数数的的原原码码是是由由符符号号位位加加上上数数值值位位绝绝对对值值组组成成,,符符号号位位为为0代代表表正正数数,,符符号号位位为为1代代表表负负数数。。由由于于0有有++0和和--0两两种种表表示示方方法法,,n位二二进进制制数数可可以以表表示示2n-1个原原码码。。用原原码码实实现现乘乘除除运运算算规规则则较较简简单单,,但但做做加加减减运运算算不不方方便便。。原原码码表表示示法法的的一一个个主主要要优优点点在在于于其其真真值值和和机机器器码码表表示示之之间间对对应应关关系系很很直直观观,,容容易易转转换换。。③补码码表表示示法法定点点整整数数的的补补码码表表示示定点点整整数数补补码码的的定定义义如如下下所所示示::[X]补=X0≤≤X<<2n--1[X]补=2n+X--2n--1≤X<<0正整整数数的的补补码码就就是是其其自自身身,,负负整整数数的的补补码码可可以以通通过过对对其其绝绝对对值值部部分分逐逐位位求求反反,,并并在在最最低低位位加加1求得得。。同同样样,,在在补补码码表表示示法法中中,,符符号号位位为为0表示示正正号号,,为为1表示示负负号号。。其其表表示示的的真真值值X的范范围围为为-2n-1≤X≤2n-1-1。在补补码码表表示示中中,,0的机机器器码码是是惟惟一一的的,,没没有有++0和--0之分分。。定点点小小数数的的补补码码表表示示定点点小小数数补补码码的的定定义义如如下下所所示示::[X]补=X0≤X<1[X]补=2+X-1≤X<0定点点小小数数的的补补码码求求解解方方法法与与定定点点整整数数的的补补码码求求解解方方法法相相类似似。。其其表表示示的的真真值值X的范范围围为为--1≤X≤1-2-(n-1)。当n=8时,-1的定点小数数补码表示示为:10000000,而用定点整数的补补码表示--1,则为11111111。在补码表示示方法中,,0的编码是惟惟一的,所所以n位二进制数可以表表示2n个补码。③反码表示示法定点整数的的反码表示示定点整数反反码的定义义如下所示示:[X]反=X0≤X<2n-1[X]反=(2n-1)+X--2n-1<X≤0同样,正整整数的反码码就是其自自身,而负负整数的反反码可以通过对其其绝对值逐逐位求反来来求得。在在反码表示示法中,符号位仍仍然用0表表示正号,,1表示负负号。其表表示的真值范围与原原码相同::-(2n-1-1)≤X≤2n-1-1。数值0用反码表示示亦有+0和-0之之分。当n=8时,[+0]反=00000000,,[-0]反=11111111。定点小数的的反码表示示定点小数反反码的定义义如下所示示:[X]反=X0≤X<1[X]反=(2-2-n+1)+X--1<<X≤0定点小数的的反码求解解方法类似似定点整数数的反码求求解方法。。其表示的的真值的取取值范围为为:-(1-2-(n-1))≤X≤(1-2-(n-1))。反码表示法法中,由于于0占有了两个个不同的编编码,所以以,n位二进制数数可以表示示2n-1个反码。④移码表示示法定点整数的的移码表示示[X]移=2n-1+X-2n-1≤X<2n-1定点小数的的移码表示示[X]移=1+X-1≤X<1移码的符号号位与其他他三种编码码不同,用用1表示正号而而0表示负号。。移码的求求法其实也也很简单,,把其补码码的符号位位直接变反反即可。所所以在移码码表示法中中,0也有惟一的的表示方法法:10000000(n=8)【例2.3】】设机器码长长度为8,求X=(-6)10的原码、补补码、反码码和移码。。解:[X]原码=27-(-110)=10000000+110=10000110[X]补码=28+(-110)=10000000-110=11111010[X]反码=(28--1)+(-110)=11111111-110=11111001[X]移码=27+(-110)=10000000+110=01111010【【例2.44】设机机器码长度度为8,求求X=(-0.3125)10=(-0..0101)2的原码、补补码、反码码和移码。。解:[X]原码=1-X=1.0-(-0.0101)=1.0101=10101000[X]补码=2+X=10..0+(--0.0101)==1.1011=11011000[X]反码=(2-2-7)+X=(10.0-0.0000001)+(--0.0101)==11010111[X]移码=1+X=1.0+(-0.0101)=0.1011=01011000实际上求某某个数的原原码、补码码、反码和和移码时不不仅可以利利用其定义义式采求解解,也可以以通过这4个编码间间的相互关关系来求得得。比如移移码就可以以通过把补补码的符号号位变反来来求,而对对于正数来来讲其原码码、补码和和反码是完完全相同的的;一个负负数的补码码也可以很很容易地从从其原码推推知:除符符号位外,,各位取反反,末位再再加1即可可。(4)浮点点数据的编编码方法计算机内部部浮点数据据表示成如如下形式::FXZXFX是尾数的符符号位,0表示正号号而l表示负号;;Z是阶码,通通常用移码码表示;X是定点小数数形式的尾尾数,一般般用补码或或原码表示示。【例2.55】某某浮点数机机器码10位,基数数为2,阶阶码用4位位移码表示示,尾数5位用补码码表示,符符号位1位位。求210×0.110l的编码。解:符号位FX=0阶码Z=(10)移码=1010尾数X=(0..1101)补码=11010则其编编码为为0101011010【例22.66】某浮点点数机机器码码为17位,基基数为为2,阶码码用4位移码码表示示,尾尾数用用12位补码码表示示,符符号位位1位。求求-2.75的浮点点编码码形式式。解:首首先把把-2.75表示成成浮点点形式式:(-2.75)10=(-0.6875×22)10=(-0.1011)2×2(10)FX=1Z=(10)移码=1010X=(-0.1011)补码=010100000000编码为为11010010100000000同一个个浮点点数可可以有有许多多种不不同的的编码码表示示(改改变其其阶码码),,所以以需要要对浮浮点数数进行行规格格化处处理,,以统统一其其形式式,同同时提提高数数据的的表示示精度度。规格化化处理理(基基数为为2)①尾数数部分分以纯纯小数数形式式表示示,其其绝对对值应应满足足0..5≤≤▕X▏<<1。。若不满满足该该条件件,则则需要要修改改阶码码并对对尾数数进行行移位位,以以使尾尾数满满足该该条件件;②当尾尾数为为正时时,无无论其其使用用原码码还是是补码码表示示,X应满足足条件件:0.5≤X<1。以二进进制形形式表表示为为X=0.1xx…x(x为0或1);③用原原码表表示的的负尾尾数,,X满足--1<X≤-0.5,以二进进制形形式表表示为为M=1.1xx…x(x为0或1);④以补补码表表示的的负尾尾数,,X满足--1≤M<-0.5,以二进进制形形式表表示为为X=1.0xx…x(x为0或1);从上面面的讨讨论可可以看看出,,如果果规格格化的的尾数数用原原码表表示,,则其其最高高位一一定为为1如果改改用补补码表表示,,则尾尾数的的最高高位与与其符符号位位相反反,即即为0。2.符符号数数据的的表示示方法法现代计计算机机不仅仅处理理数值值领域域的问问题,,而且且处理理大量量非数数值领领域的的问题题。这这样一一来,,必然然要引引入文文字、、字母母以及及某些些专用用符号号,以以便表表示文文字语语言、、逻辑辑语言言等信信息。。例如如人机机交换换信息息时使使用英英文字字母、、标点点符号号、十十进制制数以以及诸诸如$,%%,++等符符号。。然而而数字字计算算机只只能处处理二二进制制数据据,因因此,,上述述信息息应用用到计计算机机中时时,都都必须须编写写成二二进制制格式式的代代码,,也就就是字字符信信息用用数据据表示示,称称为符符号数数据。。最常常见的的编码码格式式为ASCⅡ码和EBCDIC码。(1))ASCⅡ码目前国国际上上普遍遍采用用的一一种字字符系系统是是七单单位的的ASCII码(美美国国国家信信息交交换标标准字字符码码),,它包包括10个个十进进制数数码,,26个英英文字字母和和一定定数量量的专专用符符号,,如$,%%,++,==等,,总共共128个个元素素,因因此二二进制制编码码需要要7位位,加加上一一个偶偶校验验位,,共8位,,刚好好为一一个字字节。。表2-1列出出了七七单位位的ASCII码字符符编码码表。。ASCII码规定定8个个二进进制位位的最最高一一位为为0,,余下下的7位可可以给给出128个编编码,,表示示128个个不同同的字字符。。其中中95个编编码,,对应应着计计算机机终端端能输输人并并且可可以显显示的的95个字字符,,打印印机设设备也也能打打印这这95个字字符,,如大大小写写各26个个英文文字母母,0~9这10个个数字字符,,通用用的运运算符符和标标点符符号++,--,*,\\,>,==,<等等等。另外的的33个字字符,,其编编码值值为0~31和和127,,则不不对应应任何何一个个可以以显示示或打打印的的实际际字符符,它它们被被用作作控制制码,,控制制计算算机某某些外外围设设备的的工作作特性性和某某些计计算机机软件件的运运行情情况。。计算机机里的的存储储和传传送单单位通通常使使用Byte(1Byte==8bit),所以7位的的ASCII码也用用一个字节节来表表示。。ASCII编码和和128个字符符的对对应关系系如表表2.1所示。表表中编码码符号的的排列次次序为bb7b6b5b4b3b2b1b0,最高1位没有使使用,通通常填0;也可以以把它用用作校验位或者者用来扩扩展字符符集。表表中未给给出,列列b6b5b4为高位部部分,行bb3b2b1b0为低位部部分。ASCII的字符编编码表一一共有24=16行,23=8列。低4位编码bb3b2b1b0用作行编编码,而而b6b5b4高3位用作列列编码。。值得注注意的一一点是数数字“0”到“9”的编码码:它们都位位于3列(011),从0行(0000)排列到9行(1001),即“0”的ASCII码为(0110000)2=(30)16,“9”的ASCII码为(0111001)2=(39)16。把高3位屏蔽掉掉,低4位恰是““0”~“9”的二进进制码。。可以看看出,十十进制的8421码可以去去掉b6b5b4(=011)而得得到到。。这这个个特特点点使使得得在在数字字符符号号(ASCII码)与数数字字值值(二进进制制码码)之间间进进行行转转换换非非常常方方便便。。表2-1ASCⅡ字符符编编码码表表
0000010100111001011101110000NULDELSP0@P`p0001SOHDC1!1AQaq0010STXDC2〃2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l┃1101CRGS-=M]m}1110SORS.>N∧n~1111SIUS/?O—oDEL字符符串串是是指指连连续续的的一一串串字字符符,,通通常常方方式式下下,,它它们们占占用用主主存存中中连连续续的的多多个个字字节节,,每每个个字字节节存存一一个个字字符符。。当当主主存存字字由由2个个或或4个个字字节节组组成成时时,,在在同同一一个个主主存存字字中中,,既既可可按按从从低低位位字字节节向向高高位位字字节节的的顺顺序序存存放放字字符符串串内内容容,,也也可可按按从从高高位位字字节节向向低低位位字字节节的的次次序序顺顺序序存存放放字字符符串串内内容容。。这这两两种种存存放放方方式式都都是是常常用用方方式式,,不不同同的的计计算算机机可可以以选选用用其其中中任任何何一一种种。。例例如如下下述述字字符符串串::图2-1字字符符串串在在主主存存中中的的存存放放IF┗┛┛A>B┗┛┛ELSE┗┛┛READ(C)┗┛┛就可可以以按按图图2-1所示示从从高高位位字字节节到到低低位位字字节节依依次次存存放放在在主主存存中中。。其其中中主主存存单单元元长长度度由由4个字字节节组组成成。。每每个个字字节节中中存存放放相相应应字字符符的的ASCII值,,文文字字表表达达式式中中的的空空格格““┗┗┛┛””在在主主存存中中也也占占一一个个字字节节的的位位置置。。因因而而每每个个字字节节分分别别存存放放十十进进制制的的73,70,32,65,62,66,32,69,76,83,69,32,82,69,65,68,40,67,41,32。(2)EBCDIC码EBCDIC(ExtendedBinaryCodedDecimalInterchangeCode)即所所谓谓扩扩展展的的二二//十十进进制制交交换换码码。。采采用用8bit编码码来来表表示示一一个个字字符符,,共共可可以以表表示示28=256个不不同同符符号号,,但但EBCDIC中并并没没有有使使用用全全部部编编码码,,只只选选用用了了其其中中一一部部分分,,剩剩下下的的保保留留作作扩扩充充用用。。EBCDIC码常常用用于于IBM大型型机机中中。。在在EBCDIC码制制中中,,数数字字““0”~~““9”的的高高4位编编码码都都是是1111,而而低低4位编编码码则则依依次次为为0000到1001。把把高高四四位位屏屏蔽蔽掉掉,,也也很很容容易易实实现现从从EBCDIC码到到二二进进制制数数字字值值的的转转换换。。3..汉汉字字的的表表示示方方法法(1)汉字字的的输输入入编编码码为了了能能直直接接使使用用西西文文标标准准键键盘盘把把汉汉字字输输入入到到计计算算机机,,就就必必须须为为汉汉字字设设计计相相应应的的输输入入编编码码方方法法。。当当前前采采用用的的方方法法主主要要有有以以下下三三类类::数数字字编编码码常用用的的是是国国标标区区位位码码,,用用数数字字串串代代表表一一个个汉汉字字输输入入。。区区位位码码是是将将国国家家标准准局局公公布布的的6763个两两级级汉汉字字分分为为94个区区,,每每个个区区分分94位,,实实际际上上把把汉汉字字表表示示成成二二维维数数组组,,每每个个汉汉字字在在数数组组中中的的下下标标就就是是区区位位码码。。区区码码和和位位码码各各两两位位十十进进制制数数字字,,因因此此输输入入一一个个汉汉字字需需按按键键四四次次。。例例如如““中中””字字位位于于第第54区48位,,区区位位码码为为5448。数字字编编码码输输入入的的优优点点是是无无重重码码,,且且输输入入码码与与内内部部编编码码的的转转换换比比较较方方便便,,缺缺点点是是代代码码难难以以记记忆忆。。拼音音码码拼拼音音码码是是以以汉汉语语拼拼音音为为基基础础的的输输入入方方法法。。凡凡掌掌握握汉汉语语拼拼音音的的人人,,不不需需训训练练和和记记忆忆,,即即可可使使用用。。但但汉汉字字同同音音字字太太多多,,输输入入重重码码率率很很高高,,因因此此按按拼拼音音输输入入后后还还必必须须进进行行同同音音字字选选择择,,影影响响了了输输入入速速度度。。字形编码字形编码是用用汉字的形状状来进行的编编码。汉字总总数虽多,但但是由一笔一划组成,全全部汉字的部部件和笔划是是有限的。因因此,把汉字字的笔划部件件用字母或数数字进行编码码,按笔划的的顺序依次输输入,就能表表示一个汉字字。例如五笔笔字型编码是是最有影响的的一种字形编编码方法。除了上述三种种编码方法之之外,为了加加快输入速度度,在上述方方法基础上,,发展了词组组输入、、联想输入等等多种快速输输入方法。但但是都利用了了键盘进行““手动”输入入。理想的输输入方式是利利用语音或图图像识别技术术“自动”将将拼音或文本本输入到计算算机内,使计计算机能认识识汉字,听懂懂汉语,并将将其自动转换换为机内代码码表示。目前前这种理想已已经成为现实实。(2)汉字的存储((汉字内码))汉字内码是用用于汉字信息息的存储、交交换、检索等等操作的机内内代码,一般般采用两个字字节表示。英英文字符的机机内代码是七七位的ASCII码,当用一个个字节表示时时,最高位为为“0”。为了与英英文字符能相相互区别,汉汉字机内代码码中两个字节节的最高位均均规定为“1”。例如汉字字操作系统CCDOS中使用的汉字字内码是一种种最高位为““l”的两字节内码码。有些系统中字字节的最高位位用于奇偶校校验位,这种种情况下用三三个字节表示示汉字内码。。(3)汉字的输出((汉字字模码码)字模码是用点点阵表示的汉汉字字形代码码,它是汉字字的输出形式。根据据汉字输出的的要求不同,,点阵的多少少也不同。简易型汉字为为16×16点阵,,提高型汉字字为24××24点阵阵、32×32点阵,甚至至更高。因此此字模点阵的的信息量是很很大的,所占存储空间间也很大。以以16×16点阵为为例,每个汉汉字要占用32个字字节,国标两两级汉字要占占用256K字节。因此字字模点阵只能用来来构成汉字库库,而不能用用于机内存储储。字库中存储了每个汉汉字的点阵代代码。当显示示输出或打印印输出时才检索字库,输输出字模点阵阵,得到字形形。图2--2示出了““大”字的点阵及编编码。注意,,汉字的输入入编码、汉字字内码、字模码是计算机机中用于输入入、内部处理理、输出三种种不同用途的编码,不要要混为一谈。。图2-2汉字的字模点点阵及编码4.校验码元件故障、噪噪声干扰等各各种因素常常常导致计算机机在处理信息息过程中出现现错误。例如如将1位x从部件A传送到部件B,可能由于传送送信道中的噪噪声干扰而受受到破坏,以以至于在接收收部件B收到的是而不不是x。为了防止这种种错误,可将将信号采用专专门的逻辑线线路进行编码码以检测错误误,甚至校正正错误。通常常的方法是,,在每个字上上添加一些校校验位,用来来确定字中出出现错误的位位置。计算机机中常用这种种检错或纠错错技术进行存存储器读写正正确性或传输输信息的检验验。这里仅介介绍检错码中中的奇偶校验验码。最简单且应用用广泛的检错错码是采用一一位校验位的的奇校验或偶偶校验。设X=(x0x1…xn-1)是一个n位字,则奇校校验位定义为C=x0x1…xn-1式中⊕代表按按位加,表明明只有当X中包含有奇数数个1时,才能使=1,即C=0。同理,偶校验验位C定义为C=x0x1…xn-1即X中包含偶数个个1时,才使C=0。假设一个字X从部件A传送到部件B。在源点A,校验位C可用上面公式式算出来,并并合在一起将将(x0x1…xn-1C)送到B。假设在B点真正接收到到的是X=(x’0x’1…x’n-1C’),然后计算F=(x’0x’1…x’n-1C’)若F=1,意味着收到的的信息有错,,例如(x0x1…xn-1)中正巧有一位位变“反”时时就会出现这这种情况。若若F=0,表明X字传送正确。。奇偶校验可可提供单个错错误检测,但但无法检测多多个错误,更更无法识别错错误信息的位位置。【例2.7】】已知下表中左左面一栏有5个字节的数据据。请分别是是用奇校验和和偶校验进行行编码,填在在中间一栏和和右面一栏。。解:假定最低低一位为校验验位,其余高高8位为数据据位,列表如如下。从中看看出,校验位位的值取。还还是取1,是是由数据位中中1的个数决决定的。数据偶校验编码奇校验编码10101010101010100101010101010101000101010010101010000000000000000000000000000101111111011111111011111110111111111111111101111111112.1.2计计算机中中算术运算和逻逻辑运算1.二进制数数的算术运算算(1)定点点数运算①定点数数加法/减法法运算定点数的加法法和减法运算算使用补码较较为方便。对对于定点小数数的运算规则则如下:加法:[X+Y]补={[X]补+[y]补}mod2减法:[X-Y]补={[X]补+[-y]补}mod2当运算结果超超过了定点数数的表示范围围时,则产生生溢出(Overflow),常用的溢出检检测机制主要要有以下两种种:进位判决法::令Cn—1表示次高位(最高数值位位)向最高位位(符号位)的进位,Cn则表示符号位位的进位,则则结果是否溢溢出的判决表表如表2-2所示,即CnCn—1=1时溢出。这里里,表示异或或。表2-2溢溢出的判决决表CnCn-1Overflow=CnCn-100无溢出01溢出10溢出11无溢出【例2.8】】X=(100)10=(01100100)2,Y=(50)10=(00110010)2,求X+Y。解:[X]补=01100100,[y]补=00110010[X+Y]补=[X]补+[y]补=10010110CnCn—1=1,表示结果溢出出。【例2.9】】X=(-100)l0—(-01100100)2,Y=(-50)l0=(-00110010)2,求X-Y。解:[X]补=10011100,[-y]补=00110010[X-Y]补=[X]补+[-Y]补=11001110CnCn-1=0,因此没有溢出出。双符号位判决决法:采用两位二进进制位来表示示符号位:00~正号,,11~负号号,根据运算结果的符号号位也可以判判定其是否溢溢出,其判决决表如表2..3所示。表2-3双双符号位判判决表运算结果的符号位Overflow运算结果的符号位Overflow00无溢出10溢出01溢出11无溢出【例2.100】X=(100)l0=(01100100)2,Y=(50)l0=(00110010)2,求X+Y。解:[X]补=001100100[Y]补=000110010[X+Y]补=[X]补+[y]补=010010110其符号位为01,说明明结果溢出。。②定点数乘乘法运算在作定点数的的乘法运算时时采用原码比比较方便。通通常使用原码码一位乘法来来求两个定点点数的乘积。。运算规则:乘积的符号位位等于乘数和和被乘数的符符号位进行异异或;乘积的值等于于两数绝对值值之积,即乘乘数和被乘数数的绝对值进进行移位相加加。算法:(用绝绝对值进行运运算)令X表示被乘数,,Y表示乘数,P表示部分积以以存放中间结结果,flag用作判别位,,count用作计数。令P=0;count=0;flag=0;P和Y一起右移一位位(P为高位部分,,Y为低位部分),右移时P的最高位补0,P的最低位移入入Y的最高位,Y的最低位移入入到flag中;如果flag=1同P=P+X,,否则P不变;count==count+1,如果count超过Y的位数则运算算停止,否则则转到上述第第2步继续执执行;P和Y的内容就是所所求乘积的绝绝对值,其中中P存放积的高位位,而Y存放积的低位位。【例2.111】X=(10)l0=(1010)2,Y=(-6)10=(-0110)2,求X,Y。解:[▕X▏]原=1010,,[▕Y▏]原=0110乘积的符号位位S=01=1。表2-4定定点数乘法法运算表执行动作部分积P乘数Y判别位Flagcounter初始化0000011000右移0000001101右移0000000112P+X1010
右移0101000013P+X1111
右移0111100004右移0011110005则所得乘积为为(-00111100)2=(-60)l0③定点数除法运运算定点数的除法法通常也常用用原码进行。。下面介绍常常用的加减交交替法求两个个数X和Y的商。运算规规则:商的符号位同同定点数原码码乘法的处理理方法,由两两数的符号位位进行异或;;两数的绝对对值部分进行行相除;算法:(求X/Y,设X、Y的数值部分长长度为N)令及R=X,counter=0;R=R-Y;;若R为正则商1,,否则商0;;R左移一位,counter=counter++1;若上一次商为为1则R=R—Y,,否则R=R+Y;;R为正则商1,,否则商0;;若R=0或者counter≥N则结束,否则则转到上述第第3步执行。。(2)浮点点数运算在进行浮点运运算之前,应应先对浮点数数进行规格化化。①浮点数的加加减运算设有浮点数X=M·2i,Y=N·2j,求X+Y或X-Y,其运算过程如如下:对阶:使两个个数的阶码相相同。令K=▕i-j▏,把阶码小的数数的尾数右移移K位,其阶码加加上K。当右移尾数时时,若尾数用用补码表示则则符号位参加加移位,符号号位不变,如如果是原码,,则符号位不不参加移位,,尾数的最高高位补0。尾数进行加、、减运算:规格化处理::若尾数所得得结果不是规规格化的数,,则需对其进进行规格化处处理。当尾数数溢出时,尾尾数向右规格格化位,阶码码加1;当尾尾数用补码表表示,尾数的的最高位与符符号位相同时时,应向左规规格化,尾数数每向左移一一位,阶码减减1,直到尾尾数最高位与与符号位相反反。舍入操作:舍舍入的方法常常用0舍1入入,即当向右右规格化时,,若移掉的最最高位为1,,则在尾数末末位加1,否否则舍去。另另一种则是““恒1”法,,即不管移走走的数据为何何值,尾数最最末位恒置1。溢出判断:以以阶码为准。。若阶码上溢溢,则结果溢溢出;若阶码码下溢,则结结果为0;否否则结果正确确无溢出。②浮点数的的乘除运算浮点数相乘,,其积的阶码码为两数阶码码相加,积的的尾数为两尾尾数相乘。浮浮点数相除,,其商的阶码码为两数阶码码之差,商的的尾数为两尾尾数相除。其其结果都需要要进行规格化化处理,同时时还需要判断断其阶码是否否溢出。2.逻辑代数及逻逻辑运算逻辑代数是1849年英英国数学家乔乔治·布尔提提出的以代数数的方式对逻逻辑变量进行行描述和分析析的数学工具具,又称布尔尔代数。逻辑辑变量的取值值只有“真””和“假”,,通常以1和和0表示。(1)基本本的逻辑运算算①“与”(AND)运算又称为逻辑乘乘运算,其运运算符号通常常用AND、∩、、∧或·等表示。。两个变量的的“与”运算算的运算规则则如表2-4所示。即当当A、B中任一变量取取0值时,其其运算结果为为0。表2.5““与”运算算表表表2.6““或”运算算表ABZ=A·B000010100111ABZ=A+B000011101111②“或”(OR)运算又称为逻辑加加运算,其运运算符号为OR、U、V或+等。两个个变量的“或或”运算规则则如表2-5所示。即当当A、B中任意一一个取1值时,,其运算算结果为为l。③“非”(NOT)运算又称为逻逻辑求反反运算。。常用表表示对变变量A进行求反反。其运运算规则则很简单单:=0,=1。④“异或或”运算算常用的还还有“异异或”运运算,又又称为半半加运算算,其运运算符号号为XOR或。异异或运算算是一种种复合逻逻辑运算算,可用用上述基基本逻辑辑运算表表示如下下:A⊕B=A·B+A··B2.2逻逻辑辑部件2.2..1寄寄存器器1.寄存存器组(registerblock)概述CPU中的寄存存器通常常可以分分为两类类:用户户可见的的寄存器器(user-visibleregisters)和状态控控制寄存存器(controlandstatusregisters)。(1)用户可见见的寄存存器用户能够够通过机机器语言言来访问问这些寄寄存器。。合理优优化地使使用这些些寄存器器可以减减少对主主存的访访问次数数,从而而提高程程序的执执行速度度。按其其功能可可以分为为4类:①通用寄寄存器(generalpurposeregister)通用寄存存器的用用途由程程序员编编程决定定,例如如可以用用来存放放操作数数,也可可以用作作寻址寄寄存器。。②数据寄寄存器(dataregister)数据寄存存器仅能能用来存存放数据据而不能能用来对对操作数数的地址址进行计计算。③地址寄寄存器(addressregister)地址寄存存器用来来存放操操作数的的地址,,一般而而言地址址寄存器器又可以以分为段段地址寄寄存器(segmentpointerregister)、间址寄存存器(indexregister)和堆栈寄寄存器(stackpointerregister)。段地址寄寄存器用用在采用用段式内内存管理理的计算算机中,,存放着着某一段段内存区区域的基基地址。。间址寄寄存器用用在间接接寻址(indexedaddressing)方式下。。堆栈寄寄存器用用以存放放堆栈栈栈顶的地地址,使使得在使使用堆栈栈操作(如push,pop)时无须显显式地给给出操作作数的地地址(即其地址址是隐含含的)。④标志寄寄存器(flag/conditioncodesregister)标志寄存存器中的的位是由由CPU硬件根据据运算的的结果而而设立的的一些指指示位,,以反映映该次运运算的某某些特征征:结果果为正、、负、零零、溢出出等等,,并可以以用作分分支跳转转的依据据。一般般而言,,标志寄寄存器允允许编程程者进行行读操作作,但不不允许对对其直接接进行写写操作。。(2)状态控制制寄存器器(CSR)这些寄存存器被控控制器(controlunit)用来控制制CPU的操作。。通常是是程序员员不可见见的,但但也有某某些寄存存器在某某种特定定的状态态下可以以由某些些特权指指令进行行访问。。常见的的CSR有:程序序计数器器(programcounter,PC)、指令寄存存器(instructionregister,IR)、存储器地地址寄存存器(memoryaddress,register,MAR)、存储器缓缓冲寄存存器(memorybufferregister,MBR)以及程序序状态字字(programstatusword,PSW)。PC中存放着着下一条条待取指指令的地地址。当当程序顺顺序执行行时,CPU在取回一一条指令令后,会会自动修修改PC中的值以以使其指指向下一一条指令令。而程程序中的的分支或或跳转指指令也是是通过修修改PC中的值来来达到改改变流程程的目的的。IR中存放着着CPU刚取回的的指令,,以供指指令译码码使用。。CPU和存储器器之间的的数据交交换通过过MAR和MBR来实现。。MAR中存放着着待访问问的内存存单元的的地址而而MBR则存放从从内存中中读人的的数据或或要写回回内存单单元的数数据。这4个寄存器器(PC、IR、MAR、MBR)用来实现现在CPU和存储器器(memory)之间的数数据交换换。另外外CPU内部,在在ALU与MBR、用户可见见的寄存存器之间间也可能能存在用用作输入入/输出缓冲冲寄存器器。2.寄存存器逻辑辑组成寄存器是是计算机机的一个个重要部部件,用用于暂存存数据、、指令等等。它由由触发器器和一些些控制门门组成。。在寄存存器中,,常用的的是正边边沿触发发D触发器和和锁存器器。图2-3所示是由由正沿触触发的D触发器组组成的四四位寄存存器。在在CP正沿作用用下,外外部数据据才能进进入寄存存器。D是复位端端,CP是D触发器的的脉冲端端,CK是增加了了个与逻逻辑门电电路来取取正沿脉脉冲的输输入端。。四D寄存器的的功能见见表2-7,其中↑↑代表正正脉冲,,也即正正沿。图2-3四D寄存器表2-7四D寄存器功功能表控制和输入输出RDCK1D2D3D4D1Q2Q3Q4Q1↑1D2D3D4D1D2D3D4D0×××××0000事实上,,在计算算机中常常要求寄寄存器有有移位功功能。如如在进行行乘法时时,要求求将部分分积右移移;在将将并行传传送的数数转换成成串行数数时也需需移位。。有移位位功能的的寄存器器称为移移位寄存存器。2.2..2计计数器器计数器是是计算机机、数字字仪表中中常用的的一种电电路。计计数器按按时钟作作用方式式来分,,有同步步计数器器和异步步计数器器两大类类。在异异步计数数器中,,由于高高位触发发器的时时钟信号号是由低低一位触触发器的的输出来来提供的的,但是是结构简简单。同同步计数数器中各各触发器器的时钟钟信号是是由同一一脉冲来来提供的的,因此此,各触触发器是是同时翻翻转的,,它的工工作频率率比异步步计数器器高,但但结构较较复杂。。计数器器按计数数顺序来来分,有有二进制制、十进进制两大大类。在在计算机机中较少少使用异异步计数数器,这这里着重重介绍有有并行输输入数据据功能的的正向同同步十进进制计数数器。图2-4是用主——从J—K触发器构构成的同同步十进进制集成成化计数数器。同同步计数数器是采采用快速速进位方方式来计计数的,,触发器器及实现现快速进进位的逻逻辑电路路是它的的核心。。图2-4十进制同同步计数数器“预置数数”是集集成化同同步计数数器的一一个重要要功能。。一般设设置控制制端L,用来选择择电路是是执行计计数还是是执行预预置数::当L=1,执行同步步计数;;L=0,执行预置置数。由由于J—K触发器数数据输入入是双端端的,所所以要将将单端的的预置数数A~D经两级““与非””门变成成互补信信号,再再加在J,K端。图2-4所示与非非门4~11就是为此此目的而而设置的的。当L=1时,这些些与非门门被封锁锁,快速速进位电电路输出出经或门门12~15进入触发发器,电电路执行行计数;;当L=0,门4~11打开,快快速进位位被封锁锁,电路路执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年甲方提供贷款乙方提供抵押的贷款合同
- 2024年文化旅游景点广告制作安装合同范本3篇
- 2024员工宿舍物业服务与社区资源共享合同3篇
- 旋风筒课程设计
- 滚梯的课程设计过程
- 淘宝教育运营课程设计
- 2024年标准保险业务外包服务合同模板版B版
- 2024年智能家居弱电系统安装与维保一体化合同3篇
- 无弦电子琴课程设计
- 2024年烟囱施工安全生产责任书合同模板3篇
- 医疗组长竞聘
- 防止食品安全传染病
- 3外架专项施工方案
- 工程施工日志60篇
- 期末复习试题 (试卷)-2024-2025学年四年级上册数学人教版
- 电梯日管控、周排查、月调度内容表格
- 学生厌学不愿上课协议书范文
- 2024年版移动通信基站专用房屋及土地租赁合同
- 自行车被盗案汇报课件
- 钻井与完井工程-第一章-钻井与完井工程概述
- 人教版小学劳动教育五年级上册教学计划-
评论
0/150
提交评论