您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理第六章.
第三篇中央处理器(CPU)第6章计算机的运算方法*一、数据的编码与表示*二、定点数的算术运算*三、浮点四则运算*四、逻辑运算数据表示运算方法一、数据的编码与表示数据逻辑数据检错纠错码字符字符串汉字数值文字、符号语音\图形\图像各种进制BCD码定点浮点逻辑型数据逻辑型数据只有两个值:真和假,正好可以用二进制码的两个符号分别表示,例如1表示真则0表示假不必使用另外的编码规则。对逻辑型数据可以执行逻辑的与、或、非等基本逻辑运算。字符型数据的表示字符作为人—机联系的媒介,指字母、数字、运算符等西文字信息。当前的西文字符集由128个符号组成,通常用8位二进制编码,即用一个字节来表示每一个符号,当前较多通用的标准字符集是ASCII码,ASCII码字符集具体编码如下表所示:ASCII字符编码集b6b5b4000001010011100101110111b3b2b1b00000NULDLESP0@P,p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l|1101CRGS-=M]m}1110SORS.N^n~1111SIUS/?O_oDELASCII码的机内表示采用一个字节表示ASCII码时,最高位的处理方法:(1)最高位不用,即恒为“0”;(2)最高位用于奇偶校验位;(3)若采用扩展ASCII码方案时,最高位也用来表示字符编码,此时,可表示256种符号。字符串的存放:字符串是指连续的一串字符,它们占据主存中连续的多个字节,每个字节存放一个字符,对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。例如:IFABTHENREAD(C)就可以有如下不同的存放方式:字符串的表示与存储IFAAFIBTTB假定每个字HENNEH由4个字节READDAER组成(C))C(汉字的表示在计算机中表示汉字通常涉及以下几种汉字编码:(1)汉字输入码为直接使用西文标准键盘把汉字输入到计算机而设计。(2)汉字机内码汉字信息在计算机内部存储、处理和传送所采用的编码。通常采用国标码。(3)汉字字模码用于输出设备输出汉字而设计的字形编码。汉字的机内表示通常用两个字节表示一个汉字。汉字内码的识别方法:(1)若将ASCII码字节的高位设为“0”,则汉字两个字节的高位均为“1”;(2)若ASCII码字节最高位用于奇偶校验码或扩充码,则需要三个字节表示汉字,第一个字节作为汉字的标识符。几种常用的数制及其转换N进制数可用表示;温故而知新:二进制、十进制、八进制、十六进制的表示方法及其相互转换。二—十进制编码(BCD编码)BCD编码,用四位二进制表示一位十进制,有多种方案,例如:8421码,5421码,2421码,余3码,格雷码。又可区分为:有权码:四个二进制位均有指定的位权。无权码:二进制编码各位无指定的位权。有权码无权码000000000001100001000100010100000120010001001010011300110011011000104010001000111011050101101110000111601101100100101017011111011010010081000111010111100910011111110011018421余3码2421格雷码+0.00000011000100.11000100.10000010.00000011000100.1+?思考:小数点位置不同,运算如何实现?手工运算:.0001010符号位10.定点数运算中小数点的位置无关,小数点无需存放数值型数据的机内表示形式隐藏定点小数:N=Nf.N1N2…Nn定点整数:N=NfN1N2…Nn.浮点数:N=jfj1j2...Jm;Sf.S1S2...Sn隐藏隐藏定点小数表示:XfX-1X-2…X-n特点:原码为符号位加数的绝对值,0正1负原码零有两个编码,+0和-0编码不同X1–X=1+|X|-1X00X1定义:[X]原=原码的定义实例:X1=0.10110-0.101100.0000[X1]原=0.101101.101100.00001.0000n定义:[X]原=定点整数表示:XfXnXn-1…X10,X2n-X=2n+|X|0X2n-2nX02n=100┅0实例:X1=10110-101100[X1]原=0101101101100,00001,0000定点小数反码的定义特点:负数反码为符号位跟数每位的反,0正1负反码零有两个编码,+0和-0的编码不同X(2-2-n)+X-1X00X1定义:[X]反=实例:X1=0.10110-0.101100.0000[X1]反=0.101101.010010.00001.1111n+1定义:[X]反=定点整数的反码表示0,X2n+1-1+X0X2n-2nX02n+1=100┅0定点小数表示:XfX-1X-2…X-n特点:补码最高一位为符号位,0正1负补码表示为模加上负数本身补码零有唯一编码,故补码还可以表示-1补码能很好用于加减(乘除)运算补码的引入;钟表;负数的正补数。实例:X1=0.10110-0.101100.0000-0.0000-1.0000[X1]补=0.101101.010100.00000.00001.0000n+1定义:[X]补=定点整数表示:XfXnXn-1…X10,X2n+1+X0X2n2nX02n+1=100┅0整数的原码、反码和补码表示与定点小数的三种表示基本相同,差别仅表现在小数点的位置,整数的小数点在最低数值位的右侧。整数中用“,”隔开符号位与数值位。例如:五位整数的编码:X1=+01110[X1]原=0,01110[X1]反=0,01110[X1]补=0,01110X2=-01110[X2]原=1,01110[X2]反=1,10001[X2]补=1,10010原、反、补码表示小结正数的原码、反码、补码表示均相同,符号位为0,数值位等于数的真值。零的原码和反码均有2个编码,补码只有1个编码负数的原码、反码、补码表示均不同,–符号位为1,数值位:原码为数的绝对值;–符号位为1,数值位:反码为每一位均取反码;–符号位为1,数值位:补码为反码再在最低位+1;n+1位移码:XfXnXn-1…X11无小数表示形式2定义:[X]移=2n+X-2nX2n3规则:正负数符号位与补码相反,数值部分相同,符号位正为1,负为04范围与补码相同,能表示-2n,0的移码只有一种。例1数值位为5位,n=5X=+11111[X]移=1,11111X=+00001[X]移=1,00001X=+00000[X]移=1,00000X=-00001[X]移=0,11111X=-11111[X]移=0,00001X=-10000[X]移=0,10000优点:移码表示若看成无符号数,则可以直接比较大小比如:要表示+0.0000000101,机器字长=800000000定点表示0.0000000101=0.101x2-7=0.0101x2-6=0.00101x2-5小数点可以浮动为何引入浮点表示法?010111110010111000011101比如下面几个浮点数的表示:浮点数的表示(IEEE标准)浮点数的阶码的位数决定浮点数的表示范围,尾数的位数决定浮点数的有效精度。浮点数是数学中实数的子集合,书写形式为:X=sXrj。其中,S称作尾数,用纯小数表示;j称作阶码,用整数表示;r称作阶的基数。机内的表示形式:[X]浮=jfj1j2...jm.Sf.S1S2...Sn规格化的浮点数对非0值的浮点数,要求尾数的绝对值必须=1/r,称满足这种表示要求的浮点数为规格化表示。把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改阶码实现。X=S×rj[X]浮=jfj1j2...JmSfS1S2...Sn规格化的浮点数尾数形式(以二进制数为例):当尾数用原码表示时,[S]原=0.1xx…x或1.1xx…x当尾数用补码表示时,[S]补=0.1xx…x或1.0xx…x例1:判断下列数的尾数表示是否为规格化的表示形式-0.0111111[X]原=1.0111111-0.0111111[X]补=1.1000001-0.1000000[X]原=1.1000000-0.1000001[X]补=1.0111111浮点数在计算机内的表示IEEE标准:阶码用移码,基数为2;尾数用原码X=S×rj[X]浮=jfj1j2...JmSfS1S2...Sn定点数与浮点数的比较:(1)数位相同时,浮点数比定点数表示范围大得多;(2)浮点数为规格化数时,精度远比定点数高;(3)浮点运算步骤比定点数多,速度比定点数低;(4)判断溢出的方法不同。IEEE754标准浮点数表示格式[X]浮=Sfjfj1j2...JmS1S2...Sn符号位Sf阶码位尾数数码位总位数短浮点数:182332长浮点数:1115264临时浮点数:1156480X=S×rj例2:设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),将十进制数+13/128写成二进制定点数和浮点数,并分别写出它在定点机和浮点机中的机器数形式。例3:将十进制数-54表示成二进制定点数和浮点数,并写出它在定点机和浮点机中的机器数形式。(其它要求同上例)例4:设浮点数字长16位,其中阶码5位(含1位阶符),尾数11位(含1位数符),写出-53/512对应的浮点规格化数的原码、补码、反码和阶码用移码,尾数用补码的形式。二、定点数的算术运算(1)移位运算(2)补码加减法运算(3)原码一位乘法运算原码一位除法运算补码一位乘法运算补码一位除法运算(4)补码二位乘法运算(5)快速乘除法运算方法移位运算的实现移位运算,用于提高某些运算的速度或作为乘除法运算的子运算。分为算术移位和逻辑移位。算术移位:对有符号数进行的移位,小数点位置不变。规则:(1)移位后符号位不变;(2)不同码制机器数移位后空位填补规则,如下表:正数码制原码、补码、反码原码补码反码右移填补代码0011负数左移填补代码0001例5:设机器数字长8位(含一位符号位),若A=±62,写出三种机器数左右移一位和两位后的表示形式以及相应的真值,并分析结果的正确性。算术左右移规律总结:对于正数,三种机器数移位后符号位均不变,左移时最高位丢1,结果出错;右移时,最低位丢1,影响精度。对于负数,三种机器数移位后符号位均不变,负数原码,左移高位丢1,出错,右移低位丢1,影响精度。负数补码,左移高位丢0,出错,右移低位丢1,影响精度。负数反码,左移高位丢0,出错,右移低位丢0,影响精度。逻辑移位(无符号数的移位)0.1000010左移1位1.0000100右移1位0.0100001左移2位0.0001000右移2位0.0100000无符号数规律:无符号数的左右移位,空出来的位都补0.补码加减法的实现(以定点小数为例)基本公式:[XY]补=[X]补[Y]补(mod2)小数[XY]补=[X]补[Y]补(mod2n+1)整数特点:(1)符号位参与运算,结果符号位通过运算自动产生;(2)运算实际上为“模运算”,因此,运算过程中可能产生模溢出,丢掉模后,不影响运算结果。例6:已知A=0.1011,B=-0.0101.求[A+B]补。例7:已知A=-1001,B=-0101.求[A+B]补。例8:设机器数字长8位,其中1位为符号位,若A=+15,B=+24,求[A-B]补,并还原成真值。补码加减法的溢出溢出:运算结果超出数据的表示范围。分为上溢和下溢(或称正溢出和负溢出)。例如:X=+0.1011Y=+0.1101[X]补=0.10
本文标题:计算机组成原理第六章.
链接地址:https://www.777doc.com/doc-2044361 .html