数据的表示和运算

上传人:m**** 文档编号:586567641 上传时间:2024-09-05 格式:PPT 页数:199 大小:2.64MB
返回 下载 相关 举报
数据的表示和运算_第1页
第1页 / 共199页
数据的表示和运算_第2页
第2页 / 共199页
数据的表示和运算_第3页
第3页 / 共199页
数据的表示和运算_第4页
第4页 / 共199页
数据的表示和运算_第5页
第5页 / 共199页
点击查看更多>>
资源描述

《数据的表示和运算》由会员分享,可在线阅读,更多相关《数据的表示和运算(199页珍藏版)》请在金锄头文库上搜索。

1、计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算第第2章章 数据的表示和运算数据的表示和运算2.1数制与编码数制与编码2.2定点数的表示和运算定点数的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.4算术逻辑单元算术逻辑单元ALU2024/9/51计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换当使用汇编语言或者高级语言编写程序时,一般都采用十进制形式;有时出于某种需要也采用十六进制形式或者二进制形式来表示。但是在计算机内部,数据的表示、存储和运算均采用二进制形式。

2、进位计数制:又称为数制,即按进位制的原则进行计数。数制由两大要素组成:基数R和各数位的权W。基数R决定了数制中各数位上允许出现的数码个数,基数为R的数制称为R进制数。权W则表明该数位上的数码所表示的单位数值的大小,权W与数位的位置有关。计算机中常用的进位计数制有二进制、八进制、十进制和十六进制。2024/9/52计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换假设 任意数值N 用 R进制数 来表示,表示形式为n+k个自左向右排列的符号来表示: N=(Dn-1Dn-2D0 .D-1D-2D-k)R 式中Di(

3、-kin-1)为该数制采用的基本符号,可取值0, 1, 2, , R-1,小数点隐含在D0与D-1之间,整数部分有n位,小数部分有k位,数值N的实际值为:2024/9/53计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换十进制(Decimal) :基数为10,允许使用的数字有10个(0-9)。主要特点是逢十进一。任意一个十进制数可以表示为: 例如十进制数例如十进制数135.26可以表示为:可以表示为:2024/9/54计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1

4、数制与编码 2.1.1 进位计数制及其相互转换二进制(Binary) :基数为2,可使用的数字只有0和1,逢二进一。任意一个二进制数可以表示为 : 例如例如二进制数二进制数(1100.1011)2可以表示可以表示为:为:2024/9/55计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换计算机中数据主要以二进制数的形式存储,原因有以下几点 : 二进制数易于表示,比较容易找到具有二值状态的物理器件来表示数据和实现存储。比如脉冲有无、电压高低等。 二进制数运算规则简单,运算过程中的输入状态和输出状态较少,便于使用

5、电子器件和线路加以实现。 二进制数的0和1与逻辑推理中的“真”和“假”相对应,为实现逻辑运算和逻辑判断提供了便利。2024/9/56计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换八进制(Octal) :基数为8,可使用的数字有0-7,逢八进一。任意一个八进制数可以表示为 : 十六进制(Hexadecimal) :基数为16,可使用的数码有0-9和A-F(代表10-15),逢十六进一。任意一个十六进制数可表示为 : 2024/9/57计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表

6、示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换非十进制转化为十进制 :非十进制数转为十进制数时将非十进制数按权展开,然后求和。【例2.1】将下列非十进制数转化为十进制。 (1207)8=183282081780=512+128+0+7=(647)10 (A7)16=(10161+7160)10=(160+7)10=(167)102024/9/58计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算例:39转换成二进制数(39)10 =(100111)22 39 1 ( b0) 2 19 1 ( b1) 2 9 1 ( b2) 2 4 0 ( b3)

7、 2 2 0 ( b4) 2 1 1 ( b5) 02.1 数制与编码 2.1.1 进位计数制及其相互转换十进制转化为非十进制 :十进制数转换为非十进制数时需将十进制数整数部分和小数部分分别转换,再将结果写到一起。十进制整数转换为非十进制整数:除R取余法。十进制整数不断除以R,直至商为0。每除一次取一个余数,从低位排向高位。例:208转换成十六进制数 (208)10 = (D0)1616 208 余 0 16 13 余 13 = DH 02024/9/59计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换十进

8、小数转换为非十进制小数:乘R取整法。用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。例:例:0.625转换成二进制数转换成二进制数0.62521.251(b-1)0.2520.500(b-2)0.5021.001(b-3)所以所以(0.625)10=(0.101)22024/9/510计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换【例2.2】将(12.6875)10转化为二进制数。整数部分整数部分(12)10=(1100)22024/9/511计

9、算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换【例2.2】将(12.6875)10转化为二进制数。小数部分小数部分(0.6875)10=(0.1011)2.所以所以(12.6875)10=(1100.1011)2 2024/9/512计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换【课堂练习】将(105.3125)10转化为二进制数。(105.3125)10=(1101001.0101)22024/9/513计算机组成与

10、结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换二进制、八进制与十六进制的转换:3位二进制数组成1位八进制数,4位二进制数组成1位十六进制数二进制转换为八进制:从小数点开始,向两边每3位为一组,整数部分不足3位在前面补“0”,小数部分不足3位在后面补“0”。八进制转换为二进制:过程相反,每一位八进制数转换为3位二进制编码。二进制转换为十六进制:从小数点开始,向两边每4位为一组,整数部分不足4位在前面补“0”,小数部分不足4位在后面补“0”。十六进制转换为二进制:只需将每一位十六进制数写成它的4位二进制编码即可。八进制与

11、十六进制的转换先转换成二进制,然后再转换为所求的进制数2024/9/514计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.1 进位计数制及其相互转换【例2.3】将(11011.11001)2转化为八进制、十六进制,将(751)8转化为十六进制。(11011.11001)2=(011011.110010)2=(33.62)8(11011.11001)2=(00011011.11001000)2=(1B.C8)16(751)8=(111101001)2=(000111101001)2=(1E9)162024/9/515计算机组成与结构计

12、算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.2 真值和机器数计算机中的数据可分两类:无符号数和有符号数。无符号数:即没有符号的数,在寄存器中的每一位均可存放数值。有符号数:即带有符号的数,存放时需要留出位置存放符号。符号“正”、“负”需要数字化,一般用“0”表示正号,用“1”表示负号,并将它放在有效数字前面。机器数:符号“数字化”的数真 值:带“+”或“-”符号的数例如,真值是+0.11001,机器数为0.11001;真值为0.11001,机器数为1.110012024/9/516计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算

13、数据的表示和运算2.1 数制与编码 2.1.3 BCD码BCD码: 使用二进制数编码来表示十进制数的方法,又叫做二-十进制码。一般用4位二进制编码来表示一个十进制数。常用的BCD码分为有权码和无权码。 有权码: 每一位都有固定的权值,加权求和的值即为它所表示的十进制数。常用的有权码有8421码、2421码、5211码等,8421码的4位二进制数的权从高到低依次是8、4、2、1。一般提到的BCD码就是指8421码。这种编码的优点是这4位二进制数之间满足二进制的进位规则。2024/9/517计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1

14、.3 BCD码在计算机内部实现BCD码算术运算,要对运算结果进行修正。BCD码加法运算修正规则:如果两个一位BCD码相加之和小于或等于(1001)2,即(9)10,不需修正;如相加之和大于或等于(10)10,要进行加6修正,并向高位进位,进位可在首次相加或修正时产生。 例如 1+8=9 4+9=13 7+9=16 0 0 0 1 0 1 0 0 0 1 1 1 + 1 0 0 0 + 1 0 0 1 + 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 0 不需修正 加6修正 加6修正2024/9/518计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示

15、和运算2.1 数制与编码 2.1.3 BCD码其它几种有权码: 2421、5211、4311码都采用4位有权的二进制码表示1个十进制数,但这4位二进制之间不符合二进制规则。这几种有权码有一特点:任何两个相加之和等于(9)10的二进制码互为反码。如2421码中,0(0000)与9(1111)、1(0001)与8(1110),互为反码。表 2.1给出了十进制数的几种常见的4位有权码。2024/9/519计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.3 BCD码十进制数8421码2421码5211码4311码00000000000000

16、000100010001000100012001000100011001130011001101010100401000100011110005010110111000011160110110010101011701111101110011008100011101110111091001111111111111表表2.14位有权码位有权码2024/9/520计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.3 BCD码无权码: 4位二进制编码的每一位没有固定的权。在采用的无权码的一些方案中,采用的比较多的是余3码,格雷码余3码:把原二

17、进制的每个代码都加0011值得到的。优点是执行十进制数位相加时,能正确产生进位信号,还给减法运算带来了方便。余3码的执行加法运算的规则:当两个余3码相加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位余3码,同时本位加0011的修正操作。格雷码:它的任何两个相邻的编码之间只有1个二进制位的状态不同,其余3个二进制位必须具有相同状态。优点:从一个编码变成下一个相邻编码时,只有1位的状态发生变化,有利于得到更好的译码波形,在模拟/数字转换的电路中得到更好的运行结果。2024/9/521计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数

18、制与编码 2.1.3 BCD码表表2.24位无权码位无权码十进制数余3码格雷码(1)格雷码(2)00011000000001010000010100201010011011030110001000104011101101010510001110101161001101000117101010000001810111100100191100010010002024/9/522计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串字符:字母、数码、运算符号、标点符号等,汉字也属于字符。使用计算机的过程必然要涉及字符。由于计算机

19、只能识别0和1两种数码,所以字符也应采用二进制编码。目 前 经 常 用 的 是 美 国 国 家 信 息 交 换 标 准 字 符 码 , 简 称ASCII(American Standard Code for Information Interchange)码。 ASCII码: 7位二进制代码表示一个字符,称为标准或基本ASCII码,如表 2.3所示。2024/9/523计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算0000100120103011410051016110711100000NULDLESP0P、p00011SOHDC1!1AQaq00102ST

20、XDC2”2BRbr00113ETXDC3#3CScs01004EOTDC4$4DTdt01015ENQNAK%5EUeu01106ACKSYN&6FVfv01117BELETB7GWgw10008BSCAN(8HXhx10019HTEM)9IYiy1010ALFSUB*:JZjz1011BVTESC+;Kk1100CFFFS,Nn1111FSIUS/?OoDEL高位高位b6b5b4低位低位b3b2b1b07位位ASCII码码编编码码表表2024/9/524计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串标准ASCI

21、I码:有128种的组合,每种组合可代表一个字符。包括所有大写和小写字母,数字 0 到 9、标点符号,及在美式英语中使用的特殊控制字符。扩充ASCII码: 在标准ASCII码前面增加一个二进制位,用8位二进制数来给字符编码。共有256种组合,可给256个字符编码。前128个字符的最高位为0,用于表示标准ASCII码。后128个字符的最高位为1,用于表示128种特殊符号,如制表符等。2024/9/525计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串汉字编码:计算机的汉字处理技术必须解决3个问题:汉字的输入、存储与交换和

22、汉字的输出,它们分别对应于汉字的输入码、内码、交换码和字形码。 汉字输入码: 将汉字输入到计算机中多用的编码。数字输入法:对每个汉字采用一个数字串进行编码,例如区位码、国标码等。优点是无重复码,缺点是难以记忆。字形分解法:将汉字按其规则和笔画划分成若干部件,用字母或者数字进行编码。如五笔字型输入法、郑码输入法等。拼音输入法:是以汉字拼音为基础的输入方法。如全拼输入法、智能ABC输入法等。优点是无须记忆,缺点是重码率较高。音形输入法:利用拼音输入法和字形分解法的各自优点,兼顾汉字的音和形,将两者混合使用。如自然码输入法。2024/9/526计算机组成与结构计算机组成与结构 第第2 2章章 数据的

23、表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串汉字内码:是计算机系统内部处理、存储汉字所使用的统一代码,一般采用两个字节表示一个汉字。汉字的输入码可以有多种,但内码在计算机中是唯一的。 汉字交换码:不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所用的代码标准。目前常用的是国标码,即国家标准化信息用汉字编码。国标汉字共有6763个,分两级,一级汉字为常用汉字,共3755个;二级汉字是非常用汉字,共3008个。每个汉字对应4位十六进制数(两个字节)。2024/9/527计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编

24、码 2.1.4 字符和字符串汉字字形码:目前的汉字处理系统中,字形信息的表示可以分为两大类:一类是用活字或文字版的母体字形形式,另一类是用点阵表示法、矢量表示法等形式,其中最基本应用最广泛的是后者。2024/9/528计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串字符串:连续的一串字符, 通常方式下, 它们占用主存中连续的多个字节, 每个字节存一个字符。当主存字由2个或4个字节组成时, 在同一个主存字中, 既可以按从低位字节向高位字节的顺序存放字符串的内容, 也可以按从高位字节向低位字节的次序顺序存放字符串的内容。

25、这两种存放方式都是常用方式。如,1F AB THEN READ (C) 就可有两种不同存放方式。假定每个主存字由4个字节组成, 图 2.1(a) 是按从高位字节向低位字符的次序存放, 图 2.1 (b) 按从低位字节向高位字节的次序存放。主存中每个字节存放的是相应字符的ASCII编码值。2024/9/529计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.4 字符和字符串IFABTHENREAD(C)AF ITB N E HD A E R) C (a)(b)2024/9/530计算机组成与结构计算机组成与结构 第第2 2章章 数据的表

26、示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码 计算机系统中的数据,在读写、存取和传送的过程中可能产生错误(随机错误或突发错误)。为减少和避免这类错误,一方面精心设计各种电路,提高计算机硬件的可靠性;另一方面是在数据编码上找出路,即采用某种编码法,通过少量附加电路,使之能发现某些错误,甚至能确定出错位置,进而实现自动改错的能力。2024/9/531计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码 数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。 实现原理:加进一些冗余码,使合法数

27、据编码出现某些错误时,就成为非法编码。这样就可以通过检测编码的合法性来达到发现错误的目的。码距:一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的最小距离就是该编码系统的码距。2024/9/532计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码 图2.4所示编码系统,用三个bit表示8个码字。两个码字之间不同的bit数最少为1,故该系统码距为1。如任何码字中一位或多位被颠倒,这个码字不能与其它有效信息区分开。如传送信息001,而被误收为011,因011

28、仍是合法码字,接收机将认为011是正确信息。信息序号二进码字a2a1a000001001201030114100510161107111图图2.4用三个用三个bit来表示来表示8个码字个码字2024/9/533计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码 图2.5所示编码系统,用4个bit表示8个码字,码字间的最小距离增加到2,码距为2。8个码字相互间最少有两bit的差异。如果任何信息的一个数位被颠倒,就成为一个非法码字。如信息是1001,误收为1011,接收机知道发生了一个差错,因为1011不是一个合法码字。但差

29、错不能被纠正,偶数个差错也无法发现。图图2.5用用4个个bit来表示来表示8个码字个码字信息序号二进码字a3a2a1a000000110012101030011411005010160110711112024/9/534计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码 为使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”。最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错。编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。表2.6概括了最小距离为1至7的码的纠错和检错能

30、力。常用的数据校验码:奇偶校验码、 海明校验码、循环冗余校验码码距码的检错与纠错能力检错纠错123456700102或12加12加23加23加32024/9/535计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-奇偶校验码奇偶校验码:奇偶检验码是一种最简单、最直观、应用最广泛的检错码,它的码距为2,因此它只能检出一位错。实现方法:由若干位有效信息(如1个字节),再加上1个二进制位(校验位)组成校验码。检验位的取值(0或1)将使整个校验码中“1”的个数为奇数或偶数。当校验位的取值使整个校验码中“1”的个数为奇数时,称为

31、奇校验;当“1”的个数为偶数时为偶校验。奇偶校验的编码和检验的电路:常见的有并行奇偶统计电路,如图2.2所示。2024/9/536计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算PO = D1 D2 D3 D4 D5 D6 D7 D8 2.1 数制与编码 2.1.5 数据校验码-奇偶校验码图 2.2 奇偶校验位的形成及检验电路=2024/9/537计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-奇偶校验码下面以奇校验为例说明对主存信息进行奇偶校验的全过程:校验位形成: 当要把一个字节

32、的代码D7D0写入主存时,就将它们送往奇偶校验逻辑电路,该电路产生的“奇形成”信号就是校验位。它将与8位代码一起作为奇校验码写入主存。若D7D0中有偶数个“1”,则“奇形成”=1,若D7D0中有奇数个“1”,则“奇形成”=0。 校验检测: 校验检测是将读出的9位代码(8位信息位和1位校验位)同时送入奇偶校验电路检测。若读出代码没有错误,则“奇校验出错”=0;若读出代码中的某一位上出现错误,则“奇校验出错”=1,表示这个9位代码中一定有某一位出现了错误,但是具体的错误位置是不能确定的。2024/9/538计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数

33、制与编码 2.1.5 数据校验码-奇偶校验码水平垂直奇偶校验码:实际工作中还经常采用纵横都加校验奇偶校验位的编码系统水平垂直奇偶校验码。考虑传输若干个长度为m位的信息。如果把这些信息编成每组n个信息的分组,则在这些不同的信息间,也能够作奇偶校验。下图中n个信息的一个分组排列成矩阵式样,并以水平奇偶(HP)及垂直奇偶(VP)的形式编出奇偶校验位。2024/9/539计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 【例】(2001年程序员试题) :由 6 个字符的 7 位 ASCII 编码排列,加上水平垂直奇偶校验位构成下列矩阵(最后一列为水平

34、奇偶校验位,最后一行为垂直奇偶校验位),则:X1X2X3X4处比特分别为?处比特分别为?X5X6X7X8处比特分别为?处比特分别为?X9X10XI1X12处比特分别为?处比特分别为?Y1和和Y2处的字符分别为?处的字符分别为?0111000111102024/9/540计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 【解】从ASCII码左起第5列可知垂直为偶校验。则: 从第1列可知X4=0;从第3行可知水平也是偶校验。 从第2行可知X3=1;从第7列可知X8=0;从第8列可知X12=1; 从第6列可知X10=0;从第6行可知X9=1;从第2

35、列可知X1=1; 从第1行可知X2=1;从第3列可知X5=1;从第4行可知X6=0; 从第4列(或第5行)可知X7=0;从第7行可知X11=1;整理一下: X1X2X3X4 = 1110 , X5X6X7X8 = 1000X9X10X11X12 = 1011 由字符Y1的ASCII码1001001=49H知道,Y1即是“I”(由“D”的ASCII码是1000100=44H推得) 由字符Y2的ASCII码0110111=37H知道,Y2即是“7”(由“3”的ASCII码是0110011=33H推得) 假如你能记住“0”的ASCII码是0110000=30H;“A”的ASCII码是1000001=

36、41H,则解起来就更方便了2024/9/541计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码这是由Richard Hamming于1950年提出的、目前还被广泛采用在网络传输等领域。实现原理:在有效信息位中加入几个校验位形成海明码,使码距比较均匀的拉大,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了依据。2024/9/542计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据

37、的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系。 2rk+r+1(2.10) 如要能检测与自动校正一位错,并发现两位错,则应在前一条件下再增加1位总校验位,此时校验位的位数r和数据位的位数k应满足下述关系: 2r-1k+r (2.11) 。2024/9/543计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与

38、编码 2.1.5 数据校验码-海明校验码可计算出数据位k与校验位r的对应关系,如表2.7所示。表2.7k与r之间的关系表r值k值r值k值23412451156712262757581202024/9/544计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码海明码的编码规律:数据位k位,校验位r位,假设海明码的最高位号为m,最低位号为1,即HmHm-1H2H1(1) 校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。(2) 海

39、明码的每一位码Hi(包括数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。以便校验的结果能正确反映出出错位的位号。2024/9/545计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码例如: 校验位r=5,用P1-P5表示,数据位k=8,用D1-D8表示,5个校验位P5P1对应的海明码位号应分别为H13,H8,H4,H2和H1。P5只能放在H13一位上,它已经是海明码的最高位了,其他4位满足Pi的位号等于2i-1的关系。其余为数据位Di,则有如下排列关系:P5D

40、8D7D6D5P4D4D3D2P3D1P2P1 按照海明码的编码规律,每个海明码的位号要等于参与检验它的几个检验位的位号之和的关系,可以给出如表2.8所示的结果2024/9/546计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算海明码位号数据位/校验位参与校验的校验位位号被校验位的海明码位号=校验位位号之和H1P111=1H2P222=2H3D11,23=1+2H4P344=4H5D21,45=1+4H6D32,46=2+4H7D41,2,47=1+2+4H8P488=8H9D51,89=1+8H10D62,810=2+8H11D71,2,811=1+2+8H

41、12D84,812=4+8H13P51313=13表表2.8出错的海明码位号和校验位位号的关系出错的海明码位号和校验位位号的关系 2024/9/547计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码由有关数据位形成Pi值的偶校验的结果: P1 =D1 D2 D4 D5 D7 P2 =D1 D3 D4 D6 D7 P3 =D2 D3 D4 D8 P4 =D5 D6 D7 D8若要分清是两位出错还是一位出错,还要补充一位P5总校验位 P5 =D1 D2 D3 D4 D5 D6 D7 D8 P4 P3 P2 P1

42、 每一位数据位,都至少出现在3个Pi值的形成关系中。当任一位数据码发生变化时,必将引起3个或4个Pi值跟着变化,该海明码的码距为4。2024/9/548计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码按如下关系对所得到的海明码实现偶校验: S1 = P1 D1 D2 D4 D5 D7 S2 = P2 D1 D3 D4 D6 D7 S3 = P3 D2 D3 D4 D8 S4 = P4 D5 D6 D7 D8 S5 = P5 P4 P3 P2 P1 D1 D2 D3 D4 D5 D6 D7 D8校验得到的结果

43、值S5 S1能反应13位海明码的出错情况任何奇数个数出错, S5一定为1任何偶数个数出错, S5一定为0图3.11是H=12,数据位k=8,校验位r=4的海明校验线路,记作(12,8)分组码。2024/9/549计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码图2.3是H=12,数据位k=8,校验位r=4的海明校验线路,记作(12,8)分组码。图中,H12 , H11, , H1是被校验码, D8 , D7, , D1是纠正后的数据, S4 , S3, S2, S1是用奇偶形成线路得到的。若S4 S1全0,

44、说明代码无错;若为1100或1011,则分别表示H12 或 H11有错,通过相关译码线经异或电路纠正该位。2024/9/550计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码图2.3 (12,8)分组码海明校验线路2024/9/551计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-海明校验码假如要进一步判别是1位错还是2位错,则再增加一个校验位。并用图2.4来取代图2.3虚框中的内容,此时增加了一个奇偶形成线路S5。 如为一位错,

45、仍按图2.3来纠正数据位;如为两位错,则无法纠正错误。图图2.4判判1位位/2位错的附加线路位错的附加线路2024/9/552计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码CRC(cyclic redundancy check)码可以发现并纠正信息存储或传送过程中连续出现的多位错误,在磁介质存储和计算机之间通信方面得到广泛应用;在数据存储和数据通讯领域,CRC应用广泛: 著名通讯协议X.25的FCS(帧检错序列)采用CRC. CCITT,ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写

46、采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。欧洲交换机都使用CRC4。2024/9/553计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码CRC码是基于模2运算而建立编码规律的校验码;模2运算特点:运算不考虑进位和借位,规则如下:模2加和模2减规则相同,按位异或,相同得0,不同得1。即:00=0,01=1,10=1,11=0。模2乘时按模2加求部分积之和。模2除是按模2减求部分余数。每求一位商应使部分余数减少一位。上商规则是:当部分余数的首位为1时,商取1,当部分余数

47、的首位为0时,商取0;当部分余数的位数小于除数位数时,该余数即为最后余数。2024/9/554计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码模2乘例子: 模2除例子:1010)101101000001010100010 1011011000010101000010010101 -商商-R余数余数2024/9/555计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码CRC码基本原理是:在K位信息码后再拼接R位的校验

48、码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式;CRC码的关键是如何从K位信息位简便地得到r位校验位(编码),及如何从K+R位信息码判断是否出错。2024/9/556计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码CRC码的编码方法:将待编码的k位有效信息位组表达为多项式M(x): M(x)=Ck-1xk-1+Ck-2xk-2+Cixi+

49、C1x+C0将信息位组左移r位,则可表示为多项式M(x)xr。可空出r位,以便拼接r位校验位 。CRC码用多项式M(x)xr除以G(x)(生成多项式)所得余数作为校验位。为了得到r位余数(校验位),G(x)必须是r+1位。设所得余数表达为R(x),商为Q(x)。将余数拼接在信息位组左移空出的r位上,构成有效信息的CRC码。多项式表达为: M(x) xr +R(x)=Q(x)G(x)+R(x)+R(x) =Q(x)G(x)+R(x)+R(x)=Q(x)G(x)2024/9/557计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据

50、校验码-循环冗余校验码CRC码的编码方法:因此所得CRC码可被G(x)表示的数码除尽。如果CRC码在传输过程中不出错,其余数必为0;如果传输过程中出错,则余数不为0,由余数指出哪一位出错,即可纠正。2024/9/558计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码【例2.4】已知有效信息为011,试用生成多项式为G(x)=10111将其编码。解:有效信息M(x)=011=x+1,n=3由G(x)=10111=x4+x2+x+1 得k+1=5,k=4将有效信息左移4位后再被G(x)模2除,即M(x)x4

51、=x5+x4对应的代码为0110000,用G(x)的二进制编码10111来除,如下:所以,M(x)x4+R(x)=0110000+1001=0111001为CRC码。总信息位为7位,有效信息位为3位,上述0111001码称(7,3)码 2024/9/559计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码【课堂练习】对4位有效信息(1100)求循环校验编码,选择生成多项式(1011) 。解: M(x)=x3+x2=1100(k=4) M(x)x3=x6+x5=1100000 (左移r=3位) G(x)=x

52、3+x+1=1011 (r+1=4位) M(x)x3/G(x)=1100000/1011=1110+010/1011 (模2除) M(x)x3+R(x)=1100000+010=1100010 (模2加) 将编好的循环校验码称为(7,4)码,即n=7,k=4。练习:假设使用的生成多项式是练习:假设使用的生成多项式是G(x)=x3+x+1。4位的原位的原始报文为始报文为1010,求编码后的报文。(答案,求编码后的报文。(答案A:1010011)2024/9/560计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余

53、校验码CRC码的译码与纠错:将收到的循环冗余码用生成多项式G(X)去除。若无错,则余数为0; 若某位出错,余数不为0。不同出错位余数不同。表 2.9为(7,3)码对应G(X)=10111的出错模式。序号A1A2A3A4A5A6A7余数出错位正确01110010000无一位错误011100000017011101100106011110101005011000110004010100101113001100111102111100110111两位错误.其他余数无法确定2024/9/561计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.

54、5 数据校验码-循环冗余校验码从表 2.9可以看出,更换不同的待测码字,余数和出错位的对应关系不变,只与码制和生成多项式有关。余数的不同,可以确定出错位数。 例如,CRC码字0111001在传输过程中若无差错,接收端用G(X)=10111去除,余数为0;如果在传输过程中有差错,在接收端变成了0111000,用G(X)=10111去除,余数不为0,等于0001,查表 2.9就可找出出错位为A7 。2024/9/562计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码如果循环码有一位出错,被G(x)模2除将得

55、到一个不为0的余数。如果余数补0继续除下去,将发现各次所得余数将按表 2.9顺序循环。 例如,第7位出错,余数为0001,补0后继续模2除,第二次余数为0010,以后依次为0100,1000.反复循环,这就是“循环码”名称的由来。 该特点便于对纠错电路的设计。即当出现不为零的余数后,一方面余数补0继续操作,另一方面将被检测的校验码字循环左移。2024/9/563计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码由表2.9可知,当出现余数为1011时,出错位为A1,取反纠正A1,然后继续循环左移7次,即得到

56、一个经过纠正的CRC码。需要指出的是,并不是任何一个(k+1)位多项式都可以作为生成多项式。从检错和纠错的要求出发,生成多项式应满足以下要求: 任何一位发生错误,都应该使余数不为零。 不同位发生错误应使余数不同。 对余数继续做模2除,应使余数循环2024/9/564计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.1 数制与编码 2.1.5 数据校验码-循环冗余校验码常用生成多项式: 名称 生成多项式 标准引用 CRC-4 x4+x+1 ITU G.704 (国际电信联盟 ) CRC-4 x4+x2+x+1 CRC-8 x8+x5+x4+1 CRC-8 x8

57、+x2+x1+1 CRC-8 x8+x6+x4+x3+x2+x1 CRC-12 x12+x11+x3+x+1 CRC-16 x16+x15+x2+1 IBM SDLC CRC16-CCITT x16+x12+x5+1 ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS CRC-32 x32+x26+x23+.+x2+x+1 DB7 ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS2024/9/565计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表

58、示和运算2.2.1定点数的表示定点数的表示计计算算机机进进行行算算术术运运算算时时,需需要要指指出出小小数数点点的的位位置置。在在计计算算机机中中根根据据小小数数点点的的位位置置是是否否固固定定可可以以分分为为定定点数点数和和浮点数浮点数两种数据格式。两种数据格式。在在定定点点数数中中小小数数点点的的位位置置固固定定不不变变。通通常常,把把小小数数点点固固定定在在数数位位的的最最前前面面或或末末尾尾,所所以以定定点点数数可可以以分分为为定点小数定点小数和和定点整数定点整数两类。两类。根根据据符符号号的的有有无无,定定点点数数又又分分为为无无符符号号数数和和有有符符号数号数两类。两类。2024/

59、9/566计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示无无符符号号数数:没没有有符符号号的的数数,数数值值的的每每一一位位均均用用来来存存放数值。放数值。有有符符号号数数:带带有有符符号号的的数数,存存储储时时需需留留出出位位置置存存放放符号。符号。在在机机器器字字长长相相同同时时,无无符符号号数数与与有有符符号号数数所所对对应应的的数数值值范范围围是是不不同同。以以机机器器字字长长为为16位位为为例例,无无符符号号数数的的表表示示范范围围为为065535,而而有有符符号号数数的的

60、表表示示范范围围为为-32768+32767(用补码表示用补码表示)。2024/9/567计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示有有符符号号数数的的表表示示:在在计计算算机机中中,常常采采用用机机器器数数来来表表示数据。常用的有原码、反码、补码、移码等。示数据。常用的有原码、反码、补码、移码等。(1)原原码码表表示示法法:是是一一种种比比较较直直观观的的表表示示方方法法,其其符符号号位位表表示示该该数数的的符符号号,“+”用用“0”表表示示,“-”用用“1”表表示示,而而数数

61、值值部部分分仍仍保保留留着着其其真真值值的的特征。特征。2024/9/568计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(1)原码表示法:)原码表示法:定点小数定点小数的原码形式为的原码形式为x0.x1x2xn,原码定义是:,原码定义是: 式中x是真值 【例2.5】 x=+0.1001,则x原=0.1001 x =-0.1001,则x原=1-(-0.1001)=1+0.1001=1.10012024/9/569计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的

62、表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(1)原码表示法:)原码表示法:定点整数定点整数的原码形式为的原码形式为x0x1x2xn,原码定义是:,原码定义是: 式中x是真值, n是整数位数 【例2.6】 x=+1001, 则x原=01001 x=-1001, 则x原=24-(-1001)=24+1001=110012024/9/570计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(1)原码表示法:)原码表示法:原码表示法有两个原码表示法有两

63、个特点特点:(1)零的表示有零的表示有“+0”和和“-0”之分,故有两种形式:之分,故有两种形式:+0原原=0.000;-0原原=1.000(2)符号位符号位x0的取值由下式决定:的取值由下式决定:其中其中x是真值。是真值。2024/9/571计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(1)原码表示法:)原码表示法:原码表示法的原码表示法的优点优点:比较直观、简单易懂比较直观、简单易懂;最大最大缺点缺点:加减法运算复杂。例如,当两数相加时,加减法运算复杂。例如,当两数相加时,先要

64、判别两数的符号,如果两数是同号,则相加;先要判别两数的符号,如果两数是同号,则相加;两数是异号,则相减。而进行减法运算又要先比较两数是异号,则相减。而进行减法运算又要先比较两数绝对值的大小,再用大绝对值减去小绝对值,两数绝对值的大小,再用大绝对值减去小绝对值,最后还要确定运算结果的正负号。符号位不能直接最后还要确定运算结果的正负号。符号位不能直接参与运算!参与运算!后面介绍的补码可解决原码的缺点。后面介绍的补码可解决原码的缺点。2024/9/572计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定

65、点数的表示(2)补码表示法:)补码表示法:定点小数的补码形式为定点小数的补码形式为x0.x1x2xn,则补码定义:,则补码定义: 【例2.7】 x=+0.1001,则x补=0.1001 x =-0.1001,则x补= 10.0000+(-0.1001)=1.0111 x=0,则+0.0000补=0.0000 -0.0000补=2+(-0.0000)=10.00000-0.0000=0.0000式中式中x是真值是真值补码中的补码中的“零零”只有一种表示形式只有一种表示形式2024/9/573计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算

66、定点数的表示和运算2.2.1定点数的表示定点数的表示(2)补码表示法:)补码表示法:对于小数,若对于小数,若x=-1,则根据小数补码定义,则根据小数补码定义,有有x补补=2+X=10.0000-1.0000=1.0000。可见,可见,-1本不属于小数范围,但却有本不属于小数范围,但却有-1补补存在存在.这这是是由由于于补补码码中中的的零零只只有有一一种种表表示示形形式式,故故它它比比原码能多表示一个原码能多表示一个“-1”2024/9/574计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的

67、表示(2)补码表示法:)补码表示法:定点整数定点整数x0x1x2xn,则补码定义:,则补码定义: 【例2.8】 x= +1001,则x补01001 x= -1001,则 x补25+(-1001) 100000-1001=10111式中式中x是真值,是真值,n是整数位数是整数位数2024/9/575计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(2)补码表示法:)补码表示法:补码表示法进行减法运算要比采用原码形式简单。补码表示法进行减法运算要比采用原码形式简单。对对于于补补码码来来说说

68、,无无论论是是正正数数还还是是负负数数,机机器器总总是是做做加法加法运算。运算。根据补码定义,求负数的补码时要做一次减法运算。根据补码定义,求负数的补码时要做一次减法运算。从从下下面面介介绍绍的的反反码码表表示示法法中中可可以以获获得得求求负负数数补补码码的的简便方法,解决负数的求补问题。简便方法,解决负数的求补问题。2024/9/576计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(3)反码表示法:)反码表示法:反码表示法中,符号的表示法与原码相同。反码表示法中,符号的表示法与原码

69、相同。正正数数的的反反码码与与正正数数的的原原码码形形式式相相同同;负负数数的的反反码码符符号号位位为为1,数数值值部部分分通通过过将将负负数数原原码码的的数数值值部部分分各各位取反位取反(0变变1,1变变0)得到。得到。2024/9/577计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(3)反码表示法:)反码表示法:定点小数的反码形式为定点小数的反码形式为x0.x1x2xn,反码定义是:,反码定义是:式中式中x是真值,是真值,n是小数位数是小数位数 【例2.9】 x=+0.0110

70、,x反=0.0110 x =-0. 0110,x反=(2-2-4)+x=1.1111-0. 0110=1.10012024/9/578计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(3)反码表示法:)反码表示法:对于对于0,反码有两种表示形式,即,反码有两种表示形式,即+0反反=0.0000-0反反=1.11112024/9/579计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的

71、表示(3)反码表示法:)反码表示法:定点整数定点整数x0x1xn,反码定义是:反码定义是:式中式中x是真值,是真值,n是整数位数是整数位数 【例2.10】 x=+1101,x反=01101 x =-1101,x反=(24+1-1)+x=11111-1101=100102024/9/580计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(3)反码表示法:)反码表示法:比较小数与整数的反码与补码的公式可得到:比较小数与整数的反码与补码的公式可得到:x补补=x反反+2-n(0x-1)x补补=

72、x反反+1(0x-2-n)若若要要求求一一个个负负数数的的补补码码,其其方方法法是是符符号号位位置置1,其其余余各各位位取取反,然后在最末位上加反,然后在最末位上加1。在计算机中,当用串行电路按位将原码转换成补码形式时在计算机中,当用串行电路按位将原码转换成补码形式时(或反之或反之),经常采取以下方法:,经常采取以下方法:自低位开始转换,从低位向自低位开始转换,从低位向高位,在遇到第高位,在遇到第1个个“1”之前,保持各位的之前,保持各位的“0”不变,第不变,第1个个“1”也不变,以后的各位按位取反,最后保持符号位也不变,以后的各位按位取反,最后保持符号位不变,经历一遍后,即可得到补码。不变,

73、经历一遍后,即可得到补码。2024/9/581计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示(4)移码表示法:)移码表示法:移移码码通通常常用用于于表表示示浮浮点点数数的的阶阶码码。阶阶码码是是n位位的的整整数数,假假设设定定点点整整数数移移码码形形式式为为x0x1x2xn时时,移移码的定义是:码的定义是:式中式中x是真值,是真值,n是整数位数是整数位数由移码的定义式可知,对于同一个整数,其移码由移码的定义式可知,对于同一个整数,其移码与其补码与其补码数值位完全相同数值位完全相同,而

74、,而符号位相反。符号位相反。2024/9/582计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.1定点数的表示定点数的表示【例例2.11】将将十十进进制制真真值值x=-127,1,0,1,127分别表示为分别表示为8位原码、反码、补码、移码值。位原码、反码、补码、移码值。真值原码反码补码移码-12711111111100000001000000100000001-110000001111111101111111101111111-010000000111111110000000010000000+0000000

75、00000000000000000010000000+100000001000000010000000110000001+127011111110111111101111111111111112024/9/583计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的运算包括移位、加、减、乘、除几种。定点数的运算包括移位、加、减、乘、除几种。1移位运算移位运算对对十十进进制制数数据据,小小数数点点左左移移一一位位相相当当于于数数据据缩缩小小10倍,右移一位相当于数据放大倍,右移一位相当

76、于数据放大10倍。倍。计计算算机机中中数数据据以以二二进进制制形形式式存存储储,且且小小数数点点的的位位置置是是固固定定的的,二二进进制制表表示示的的机机器器数数在在相相对对于于小小数数点点做做n位左移或右移时,其实质是该数乘以或除以位左移或右移时,其实质是该数乘以或除以2n。移移位位运运算算对对计计算算机机有有很很高高的的实实用用价价值值,用用移移位位指指令令对数据进行放大或缩小,比乘除运算要快得多。对数据进行放大或缩小,比乘除运算要快得多。2024/9/584计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.

77、2定点数的运算定点数的运算定点数的运算包括移位、加、减、乘、除几种。定点数的运算包括移位、加、减、乘、除几种。1移位运算移位运算移位运算分为移位运算分为逻辑移位逻辑移位、算术移位算术移位和和循环移位循环移位三种。三种。主要区别:主要区别:符号位和移出的数据位的处理方法不同。符号位和移出的数据位的处理方法不同。与与手工移位运算不同,计算机移位寄存器字长固定,当进手工移位运算不同,计算机移位寄存器字长固定,当进行左移和右移时,寄存器最低位和最高位会出现空余位,行左移和右移时,寄存器最低位和最高位会出现空余位,最高位和最低位相应地也会被移出,对空出的空位应该最高位和最低位相应地也会被移出,对空出的空

78、位应该填补填补0还是还是1,这与移位种类和机器数编码方法有关。,这与移位种类和机器数编码方法有关。2024/9/585计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算逻辑移位逻辑移位逻逻辑辑移移位位的的对对象象是是无无符符号号数数,移移位位结结果果只只是是数数据据各各位位在位置上发生了变化。在位置上发生了变化。移移位位规规则则:逻逻辑辑左左移移时时,高高位位移移出出,低低位位补补0;逻逻辑辑右右移移时时,低低位位移移出出,高高位位补补0。移移出出数数据据位位一一般般置置入入标标志志位位

79、C(进位(进位/借位标志)。移位规则如图借位标志)。移位规则如图2.5所示所示如如寄寄存存器器内内容容为为01010011,逻逻辑辑左左移移为为10100110,逻逻辑右移为辑右移为0010100。图 2.5 逻辑移位规则2024/9/586计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算算术移位算术移位算算术术移移位位对对象象是是带带符符号号数数,移移位位结结果果是是在在数数值值的的绝绝对值上进行放大或缩小,同时对值上进行放大或缩小,同时符号位须保持不变符号位须保持不变。对对原原码码

80、,算算术术左左移移,符符号号位位不不变变,高高位位移移出出,低低位位补补0;算术右移,符号位不变;算术右移,符号位不变,低位移出低位移出,高位补高位补0。对对补补码码,算算术术左左移移,符符号号位位不不变变,高高位位移移出出,低低位位补补0。当当左左移移移移出出的的数数据据位位正正数数为为1,负负数数为为0时时发发生生溢溢出出。因因此此,为为保保证证补补码码算算术术左左移移时时不不发发生生溢溢出出,移位的数据最高有效位必须与符号位相同移位的数据最高有效位必须与符号位相同。2024/9/587计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运

81、算定点数的表示和运算2.2.2定点数的运算定点数的运算算术移位算术移位算术右移算术右移时,符号位不变,低位移出,高位正数补时,符号位不变,低位移出,高位正数补0,负数补,负数补1。补码的移码规则如图。补码的移码规则如图2.6所示。所示。反码的算术移位规则反码的算术移位规则:算术左移时,最高有效位移:算术左移时,最高有效位移入符号位,低位正数补入符号位,低位正数补0,负数补,负数补1;算术右移时,;算术右移时,符号位不变,高位补符号位,低位移出。符号位不变,高位补符号位,低位移出。图 2.6 补码的算术移位规则规则2024/9/588计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和

82、运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算循环移位循环移位循环移位是指所有的数据位在自身范围内进行左移循环移位是指所有的数据位在自身范围内进行左移或者右移,或者右移,左移时最高位移入最低位左移时最高位移入最低位,右移时最低右移时最低位移入最高位位移入最高位。若与若与CF标志位一起循环,称为标志位一起循环,称为大循环大循环,否则,称,否则,称为为小循环小循环。【例例2.12】已知已知X=+13,Y=-13,分别采用,分别采用6位原码、位原码、补码、反码移位规则,求补码、反码移位规则,求X/2,2X,Y/2,2Y的值。的值。2024/9/589

83、计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算解:解:X原原=001101,X/2原原=00110X/2=+62X原原=0110102X=+26X补补=001101,X/2补补=00110X/2=+62X补补=0110102X=+26X反反=001101,X/2反反=00110X/2=+62X反反=0110102X=+26Y原原=101101,Y/2原原=100110Y/2=-62Y原原=1110102Y=-26Y补补=110011,Y/2补补=111001Y/2=-72Y补补=1001102Y=-26Y反反=110010,Y/2反反=111001Y/2=-

84、62Y反反=1001012Y=-262024/9/590计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算在计算机中,在计算机中,加法运算加法运算过程和手工笔算是一样的:过程和手工笔算是一样的:按从左到右的顺序一位一位地求和,并将进位累加按从左到右的顺序一位一位地求和,并将进位累加到左侧相邻的高位。而到左侧相邻的高位。而减法是通过加法来实现减法是通过加法来实现:先:先将减数求补,然后加上被减数。目前的计算机系统将减数求补,然后加上被减数。目前的计算机系

85、统普遍采用补码实现定点数的加减运算,在浮点数的普遍采用补码实现定点数的加减运算,在浮点数的运算中,采用移码实现阶码的加减法运算。运算中,采用移码实现阶码的加减法运算。补码加减运算方法补码加减运算方法补码加减法运算的溢出判断补码加减法运算的溢出判断2024/9/591计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算方法补码加减运算方法补码加法的补码加法的基本公式基本公式如下:如下:整数整数A补补+B补补=A+B补补(mod2n+1)(2.

86、36)小数小数A补补+B补补=A+B补补(mod2) (2.37)补补码码表表示示的的两两个个数数进进行行加加法法运运算算时时,可可把把符符号号位位与与数数值值位位同同等等处处理理,只只要要结结果果不不超超出出机机器器能能表表示示的的数数值值范范围围,运运算算后后结结果果按按2n+1去去模模(对对于于整整数数)或或按按2去模去模(对于小数对于小数),就能得到本次加法运算结果。,就能得到本次加法运算结果。2024/9/592计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运

87、算定点数的加减法运算-补码加减运算方法补码加减运算方法对对于于减减法法,因因A-B=A+(-B),则则A-B补补=A+(-B)补补。由补码加法的基本公式可得:由补码加法的基本公式可得: 整数整数A-B补补=A补补+-B补补(mod2n+1)(2.38) 小数小数A-B补补=A补补+-B补补(mod2)(2.39)补补码码的的减减法法运运算算可可用用加加法法来来表表示示,任任意意两两数数之之差差的的补码等于补码等于被减数的补码与减数相反数的补码之和。被减数的补码与减数相反数的补码之和。2024/9/593计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点

88、数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算方法补码加减运算方法【例例2.13】已知已知A=+1011,B=-0100,用补码计算,用补码计算A+B和和A-B。解:解:A补补=01011,B补补=11100,-B补补=0100。A+B补补=00111,A-B补补=01111,所以,所以A+B=+7,A-B=+152024/9/594计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算

89、-补码加减运算溢出判断补码加减运算溢出判断当运算结果超出机器数的表示范围时,称为当运算结果超出机器数的表示范围时,称为溢出溢出。仅仅当当两两个个同同号号数数相相加加或或两两个个异异号号数数相相减减时时,才才有有可可能能发发生生溢出溢出。下面举例说明溢出的情况。下面举例说明溢出的情况。【例例2.14】(1)A=+1000,B=+1001,用补码计算,用补码计算A+B(2)A=-1000,B=-1001,用补码计算,用补码计算A+B(3)A=-1000,B=+1001,用补码计算,用补码计算A-B(4)A=+1000,B=-1001,用补码计算,用补码计算A-B2024/9/595计算机组成与结构

90、计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算(1)A=+1000,B=+1001解:解:A补补=A=01000B补补=B=01001(2)A=-1000,B=-1001解:解:A补补=25+(-1000)=11000B补补=25+(-1001)=10111(3)A=-1000,B=+1001 解: A补=11000 -B补=10111(4)A=+1000,B=-1001解:解:A补补=01000B补补=010012024/9/596计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的

91、运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断【例例2.14】中,中,(1)的运算结果为的运算结果为-15,(2)的运算结果为的运算结果为+15,(3)的运算结果为的运算结果为-17,(4)的运算结果为的运算结果为+17。(1)为两正数相加,结果应为正数,运算结果却为负数,因为两正数相加,结果应为正数,运算结果却为负数,因此发生了正溢出;此发生了正溢出;(2)为两负数相加,结果应为负数,运算结果却为正数,因为两负数相加,结果应为负数,运算结果却为正数,因此发生了负溢出;此发生了负溢出;(3)为负数减去正数,结果为负数,运算结果却为正数,同为负数减

92、去正数,结果为负数,运算结果却为正数,同样发生了负溢出;样发生了负溢出;(4)为正数减去负数,结果应为正数,运算结果却为负数,为正数减去负数,结果应为正数,运算结果却为负数,表明发生了正溢出。表明发生了正溢出。以上以上4题均发生了溢出,结果不正确。题均发生了溢出,结果不正确。2024/9/597计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断计算机中常用的判别溢出方法可归纳为三种计算机中常用的判别溢出方法可归

93、纳为三种:单符号位判断方法单符号位判断方法进位溢出判断进位溢出判断双符号位判断溢出双符号位判断溢出2024/9/598计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断单符号位判断方法:单符号位判断方法:表表2.10补码加减法运算时发生溢出的补码加减法运算时发生溢出的4种基本情况种基本情况运算操作数A操作数B运算结果SA+B正数正数负数A+B负数负数正数A-B负数正数正数A-B正数负数负数2024/9/599计

94、算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断单符号位判断方法:单符号位判断方法:表表2.10中操作数和运算结果的正负是由其补码符号中操作数和运算结果的正负是由其补码符号位指出的。假设:位指出的。假设:fA为操作数为操作数A补码的符号位,补码的符号位,fB为操作数为操作数B补码的符号位,补码的符号位,fS为运算结果为运算结果S补码的符补码的符号位。号位。为控制加减运算的控制信号。为控制加减运算的控制信号。则则

95、溢出信号溢出信号OVER的表达式的表达式为:为:2024/9/5100计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断进位溢出判断进位溢出判断:当当任意符号任意符号两数相加时,如果数值最高有效位的进两数相加时,如果数值最高有效位的进位位C和符号位的进位和符号位的进位Cf相同时运算结果正确,不同相同时运算结果正确,不同时,加减运算将发生溢出。所以溢出条件为时,加减运算将发生溢出。所以溢出条件为2024/9/51

96、01计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断双符号位判断溢出双符号位判断溢出:双符号位判溢方法的运算规则是操作数双符号位判溢方法的运算规则是操作数A和和B采用采用双符号位补码参加运算,正数的双符号位为双符号位补码参加运算,正数的双符号位为00,负,负数的双符号位为数的双符号位为11。当运算结果的。当运算结果的两位符号位两位符号位fS1和和fS2不相同不相同时,为溢出。所以溢出条件为时,为溢出。所以溢出

97、条件为2024/9/5102计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的加减法运算定点数的加减法运算-补码加减运算溢出判断补码加减运算溢出判断双符号位判断溢出双符号位判断溢出: 例: (1)9+5=14 (2) 12+7=190 0 1 0 0 1 0 0 1 1 0 0 + 0 0 0 1 0 1+ 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1C=Cf=0 不溢出, C=1,Cf=0溢出,或fS1=fS2 不溢出 或fS1fS2溢出 2024/9

98、/5103计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-原码乘法运算原码乘法运算两个原码数相乘,其乘积的符号为相乘两数的符号两个原码数相乘,其乘积的符号为相乘两数的符号位异或值,数值则为两数绝对值之积。位异或值,数值则为两数绝对值之积。假设假设X原原=X0X1X2XnY原原=Y0Y1Y2Yn则则XY原原=(X0 Y0)(X1X2Xn)(1Y2Yn)符号表示把符号位和数值邻接起来符号表示把符号位和数值邻接起来2024/9/5104计算机组成与结构计算机

99、组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算手工计算乘积手工计算乘积XY,其中,其中X=+1101,Y=+1011110110111101即即XY=10001111,符号为正。,符号为正。11010000110110001111计计算算时时,逐逐次次按按乘乘数数每每1位位上上是是1还还是是0,决决定定相相加加数数取取被被乘乘数值还是取零值,且相加数逐次向左偏移数值还是取零值,且相加数逐次向左偏移1位,最后求积。位,最后求积。2.2 定点数的表示和运算 2.2.2 定点数的运算定点数的乘法运算-原码乘法运算2024/9/5105计算机组成与结构计算机组成与结构 第第2 2章章 数

100、据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-原码乘法运算原码乘法运算计算机内实现原码乘法计算机内实现原码乘法在人工计算基础上作了以下修改:在人工计算基础上作了以下修改:(1)在在机机器器内内一一次次加加法法操操作作只只能能求求出出两两数数之之和和,每每求求得得一一个个相相加数,就与上次部分积(即中间结果)相加。加数,就与上次部分积(即中间结果)相加。(2)求求本本次次部部分分积积时时,前前一一次次部部分分积积的的最最低低位位,不不再再参参与与运运算算,将将其其右右移移一一位位,相相加加数数可可直直送

101、送而而不不必必偏偏移移,于于是是用用N位位加加法器就可实现两个法器就可实现两个N数相乘。数相乘。(3)部部分分积积右右移移时时,乘乘数数同同时时右右移移一一位位,用用乘乘数数的的最最低低位位来来控控制制相相加加数数(取取被被乘乘数数或或零零),同同时时乘乘数数的的最最高高位位是是部部分分积积右右移出来的一位。移出来的一位。2024/9/5106计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-原码乘法运算原码乘法运算原码一位乘法的逻辑框图如图原码一位乘法

102、的逻辑框图如图2.7所示。其中三个所示。其中三个寄存器寄存器A,B,Q分别存放部分积、被乘数和乘数。分别存放部分积、被乘数和乘数。2024/9/5107计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算部分积部分积乘数乘数0000001011+X001101001101右移右移1位位0001101101 1(丢失丢失)+X001101010011右移右移1位位0010011110 1(丢失丢失)+0000000001001右移右移1位位0001001111 0(丢失丢失)+X001101010001右移右移1位位00100011111(丢失丢失)乘积高位乘积高位

103、乘积低位乘积低位【例例2.15】设设X=0.1101,Y=0.1011,用原码一位乘计算,用原码一位乘计算XY。解:解:计算过程如下:取双符号位计算过程如下:取双符号位XY=0.10001111乘积的符号位乘积的符号位=X0 Y0=0 0=02024/9/5108计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-原码乘法运算原码乘法运算原码一位乘是通过循环迭代的办法实现的。每次迭代得到原码一位乘是通过循环迭代的办法实现的。每次迭代得到的部分积的部分积(P

104、0,P1,,Pn)可用下式表示:可用下式表示:P0=0P1=(P0+XYn)2-1P2=(P1+XYn-1)2-1Pi+1=(Pi+XYn-i)2-1Pn=(Pn-1+XY1)2-1(2.43)式中式中Pn为乘积,为乘积,2-1表示二进制数据右移一位,相当于乘以表示二进制数据右移一位,相当于乘以2-12024/9/5109计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-定点补码一位乘法定点补码一位乘法由于计算机中的数据多以补码形式存放,虽然原码由于计算

105、机中的数据多以补码形式存放,虽然原码乘法相对简单,但为减少原码和补码之间的转换步乘法相对简单,但为减少原码和补码之间的转换步骤,许多机器仍采用补码实现乘法运算骤,许多机器仍采用补码实现乘法运算。本节介绍两种定点补码一位乘法:校正法和本节介绍两种定点补码一位乘法:校正法和Booth算法。算法。2024/9/5110计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-定点补码一位乘法定点补码一位乘法补码一位乘法补码一位乘法校正法校正法假设假设X补补=X0.X1

106、.Xn,Y补补=Y0.Y1Yn,则有,则有:XY补补=X补补(0.Y1Yn)+Y0-X补补(2.44)证明证明:(1)被乘数被乘数X的符号任意,的符号任意,Y为正数时为正数时,有,有X补补=2+X=(2n+1+X)()(mod2),),Y补补=Y则:则:X补补Y补补=(2n+1+X)Y=2n+1Y +XY(mod2)=2n+1(0.Y1Yn)XY(mod2)=2(Y1Yn)+XY(mod2)=2+XY=XY补补即:即:Y0时,时,XY补补=X补补(0.Y1Yn)2024/9/5111计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数

107、的表示和运算2.2.2定点数的运算定点数的运算定点数的乘法运算定点数的乘法运算-定点补码一位乘法定点补码一位乘法证明证明(续续):(2)被乘数被乘数X的符号任意,的符号任意,Y为负数为负数:Y补补=2+Y=1.Y1Yn则:则:Y=Y补补-2=1.Y1Yn-2=0.Y1Yn-1XY补补=X(0.Y1Yn-1)补补=X(0.Y1Yn)-X补补=X(0.Y1Yn)补补+-X补补因因0.Y1Yn0,故故:X(0.Y1Yn)补补=X补补(0.Y1Yn)所以,所以,Y00时时,可可上上商商为为1 1,再再对对RiRi左左移移一一位位后后减减除数,即除数,即2 2RiRi- -Y Y;当余数当余数RiRi0

108、0时,可上商为时,可上商为0 0,再对,再对RiRi+ +Y Y, ,即完成恢复即完成恢复余数的运算,再做余数的运算,再做2(2(RiRi+ +Y Y)-)-Y Y, ,即即2 2RiRi+ +Y Y。2024/9/5134计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点除法运算定点除法运算-定点原码一位除法(加减交替法)定点原码一位除法(加减交替法)加加减减交交替替法法是是对对恢恢复复余余数数除除法法的的一一种种修修正正。当当某某一一次次求求得得的的差差值值(余余数数Ri)为为负

109、负时时,不不是是恢恢复复它它,而而是是继继续续求求下下一一位位商商,但但用用加加上上除除数数(+Y)的的办办法法来来取取代代(-Y)操操作作,其其他他操操作作依依然然不不变。变。加减交替法的规则加减交替法的规则如下:如下:(1)当当余余数数为为正正时时,商商上上1,求求下下一一位位商商的的办办法法,是是余余数数左左移一位移一位,再,再减去除数减去除数;(2)当当余余数数为为负负时时,商商上上0,求求下下一一位位商商的的办办法法,是是余余数数左移一位左移一位,再,再加上除数加上除数。此此方方法法不不用用恢恢复复余余数数,所所以以又又叫叫不不恢恢复复余余数数法法。但但若若最最后后一一次次上上商商为

110、为0,而而又又需需得得到到正正确确余余数数,则则在在这这最最后后一一次次仍仍需需恢复余数恢复余数。2024/9/5135计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算【例例2.21】X=0.1011,Y=0.1101,用加减交替法求用加减交替法求X/Y。解解:-Y补补=11.0011,取取双双符符号位,号位,-Y用用+-Y补补取代。取代。X/Y=0.1101,余数余数0.01112-4。2024/9/5136计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数

111、的运算定点除法运算定点除法运算-定点补码一位除法(加减交替法)定点补码一位除法(加减交替法)从从X补补与与Y补补直接求直接求X/Y补补。补码除法规则比原码除法规则复杂。当除数和被除数用补补码除法规则比原码除法规则复杂。当除数和被除数用补码表示时,码表示时,判别是否够减判别是否够减,要比较它们的绝对值的大小,要比较它们的绝对值的大小若两数若两数同符号同符号,要用,要用减减法,若法,若异号异号,则要用,则要用加加法法。对于判断是否够减,及确定本次上商对于判断是否够减,及确定本次上商1还是还是0的规则,还与的规则,还与结果的符号有关。结果的符号有关。当当商为正商为正时,商的每一位上的值与原码表示一致

112、;当时,商的每一位上的值与原码表示一致;当商为商为负负时,商的各位应是补码形式的值,一般时,商的各位应是补码形式的值,一般先按各位的反码先按各位的反码值上商值上商,除完后除完后,再用在最低位上加再用在最低位上加1的办法求出正确的补的办法求出正确的补码值码值。2024/9/5137计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点除法运算定点除法运算-定点补码一位除法(加减交替法)定点补码一位除法(加减交替法)在被除数的绝对值小于除数的绝对值在被除数的绝对值小于除数的绝对值(即商不溢出

113、即商不溢出)的情况下,的情况下,补补码一位除法的运算规则码一位除法的运算规则如下:如下:(1)如果被除数与除数如果被除数与除数同号同号,用被除数,用被除数减减去除数;去除数;如果被除数与除数如果被除数与除数异号异号,用被除数,用被除数加加上除数。上除数。如果所得如果所得余数与除数同号余数与除数同号上上商商1,如果所得如果所得余数与除数异号余数与除数异号上上商商0,该商即为该商即为结果的符号位结果的符号位。(2)求商的数值部分。求商的数值部分。如果如果上次上商上次上商1,将,将余数左移一位余数左移一位后后减减去除数;去除数;如果如果上次上商上次上商0,将,将余数左移一位余数左移一位后后加加上除数

114、。上除数。如果所得如果所得余数与除数同号余数与除数同号上上商商1;如果所得如果所得余数与除数异号余数与除数异号上上商商0。如此重复执行如此重复执行n-1次次(设数值部分设数值部分n位位)2024/9/5138计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点除法运算定点除法运算-定点补码一位除法(加减交替法)定点补码一位除法(加减交替法)商商的的最最后后一一位位一一般般采采用用恒恒置置1的的办办法法,并并省省略略了了最最低低位位+1的的操操作作,此此时时最最大大误误差差为为2-n。如

115、如果果对对商商的的精精度度要要求求较较高高,则则可可按按规规则则再再进进行行一一次次操操作作并并执执行行加加Y补补或或加加-Y补恢复余数,以求得商的第补恢复余数,以求得商的第n位。位。当当除不尽除不尽时时:若商为若商为正正,商的最低位,商的最低位不加不加1;若商为若商为负负,商的最低位,商的最低位加加1,使商从反码值变成补码值。使商从反码值变成补码值。当当能除尽能除尽时:若除数为时:若除数为正正,商的最低位,商的最低位不加不加1若除数为若除数为负负,商的最低位,商的最低位加加12024/9/5139计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.2定点数的

116、表示和运算定点数的表示和运算2.2.2定点数的运算定点数的运算定点除法运算定点除法运算-定点补码一位除法(加减交替法)定点补码一位除法(加减交替法) 表2.14 补码除法规则(ri补为余数,数值部分共n位) X补,Y补符号商符第一步操作r补,Y补符号上商下一步操作(共n步)同号0减同号(够减)异号(不够减)102ri补-Y补2ri补+Y补异号1加同号(不够减)异号(够减)102ri补-Y补2ri补+Y补说明说明:(1)表中表中i=0n-1。(2)商一般采用商一般采用末位恒置末位恒置“1”的方法,操作简便。的方法,操作简便。2024/9/5140计算机组成与结构计算机组成与结构 第第2 2章章

117、数据的表示和运算数据的表示和运算例例2.22设设X补补=1.0111,Y补补=1.0011,求,求X/Y补补。解:解:-Y补补=0.1101X/Y补补=0.1011, 余数余数补补=1.11112-4。n如果如果上次上商上次上商1,将余数左,将余数左移一位后移一位后减减去除数;去除数;n如果如果上次上商上次上商0,将余数左,将余数左移一位后移一位后加加上除数。上除数。u如果所得余数与除数如果所得余数与除数同号同号上商上商1;u如果所得余数与除数如果所得余数与除数异号异号上商上商0。如此重复执行如此重复执行n-1次次(设数值部分有设数值部分有n位位)。2024/9/5141计算机组成与结构计算机

118、组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算被除数被除数(余数)余数)商商说明说明11011100000开始情形+00110100010000001余数与除数同号商1001000000102.上次商1做减法+-Y补补+110011111011+001101000011111001左移一位00010左移一位110110001003.上次商0,+Y补00101同号,商100011001010左移一位+1100110101011001010101左移,商低位恒置1异号,商01.两数异号,+Y补余数与除数异号商04.上次商1做减法+-Y补补 例 设X补=1.0111,Y补=0.1101

119、,求X/Y补=1.01012024/9/5142计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示浮浮点点数数:小小数数点点在在数数据据中中的的位位置置可可浮浮动动的的数数据据通通常常表表示为:示为:N=M2E其其中中,N是是浮浮点点数数,M是是浮浮点点数数的的尾尾数数,R为为阶阶码码的的基基数数,E为为阶阶码码。计计算算机机中中一一般般规规定定R为为2、8或或16,是是一一个确定的常数,不需要在浮点数中明确表示出来。个确定的常数,不需要在浮点数中明确表示出来。浮浮点点数数的的尾尾数数M

120、通通常常用用定定点点小小数数形形式式表表示示,一一般般采采用用原原码码和和补补码码表表示示。它它决决定定了了浮浮点点数数的的表表示示精精度度,尾尾数数的的符号代表浮点数的正负,因此,又称为数符符号代表浮点数的正负,因此,又称为数符Ms。浮浮点点数数的的阶阶码码E,通通常常用用整整数数形形式式表表示示,它它表表示示小小数数点点在在数数据据中中的的位位置置,决决定定了了浮浮点点数数的的表表示示范范围围。阶阶码码一一般采用般采用移码移码和和补码补码表示。表示。2024/9/5143计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和

121、运算2.3.1浮点数的表示浮点数的表示在机器中,为了便于比较浮点数的大小,典型的浮在机器中,为了便于比较浮点数的大小,典型的浮点数的格式通常点数的格式通常将数符放置在浮点数的首位将数符放置在浮点数的首位,将阶,将阶码放置在尾数之前,如图码放置在尾数之前,如图2.9所示所示。2024/9/5144计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示1985年,年,IEEE提出浮点数标准提出浮点数标准(IEEE754Floating-pointStandard)。该标准规定常用。该标准规定常用

122、3种浮点数格式,基数为种浮点数格式,基数为2,位,位数分配如表数分配如表2.15,各位排列如图,各位排列如图2.5所示。所示。类型总位数数符MS尾数数值位ME阶符ES阶码数值位E真值计算单精度浮点数3212317(1)双精度浮点数64152110(2)临时实数80164114注:(注:(1)(2)2024/9/5145计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示上表中单精度浮点数和双精度浮点数的阶码采用上表中单精度浮点数和双精度浮点数的阶码采用移移码码形式表示。形式表示。与前面介绍

123、的移码与前面介绍的移码不同之处在于不同之处在于:它的移量不是:它的移量不是27和和210,而是,而是27-1=127和和210-1=1023。另外,尾数采用原码形式表示,根据原码的规格化另外,尾数采用原码形式表示,根据原码的规格化方法,最高数字位总是方法,最高数字位总是“1”,将规格化浮点数尾,将规格化浮点数尾数的最高位数的最高位“1”省略,认为它隐藏在尾数小数点省略,认为它隐藏在尾数小数点的左边,即采用隐藏位,从而使有效位数增加的左边,即采用隐藏位,从而使有效位数增加1位位。2024/9/5146计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的

124、表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示为了充分利用尾数的二进制数位来表示更多的有效为了充分利用尾数的二进制数位来表示更多的有效数字,通常采用数字,通常采用规格化规格化的形式表示。若阶码的基数的形式表示。若阶码的基数为为2,则规格化浮点数的尾数,则规格化浮点数的尾数M应满足应满足1/2|M|1规格化的方法:规格化的方法:(1)对于)对于原码的表示的尾数原码的表示的尾数,当,当最高有效位最高有效位(M1)为为1时,浮点数为规格化,即尾数为时,浮点数为规格化,即尾数为*.1*的形式。的形式。(2)对于)对于补码表示的尾数补码表示的尾数,当,当符号位符号位(Ms)与最高与最高有

125、效位有效位(M1)不同不同时,浮点数为规格化,即尾数为时,浮点数为规格化,即尾数为0.1*或或1.0*的形式。的形式。2024/9/5147计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示对原码和补码表示的尾数,规格化浮点数要求的尾数对原码和补码表示的尾数,规格化浮点数要求的尾数表示范围不同。对规格化浮点数,可通过修改阶码和表示范围不同。对规格化浮点数,可通过修改阶码和左右移尾数方法来使其变成规格化浮点数,这个过程左右移尾数方法来使其变成规格化浮点数,这个过程称为为称为为规格化规格化。

126、若尾数进行右移实现规格化,称为右。若尾数进行右移实现规格化,称为右规规;若尾数左移实现规格化,称为;若尾数左移实现规格化,称为左规左规。对原码表示的尾数,当最高有效位为对原码表示的尾数,当最高有效位为0时,须进行左规,时,须进行左规,尾数每左移尾数每左移1位,阶码减位,阶码减1,直至尾数变成,直至尾数变成.1.形式;形式;对补码表示的尾数,当符号位与最高有效位相同时,对补码表示的尾数,当符号位与最高有效位相同时,也须进行左规,即尾数每左移也须进行左规,即尾数每左移1位,阶码减位,阶码减1,直至把,直至把尾数中第一个不同于符号位的尾数中第一个不同于符号位的0或者或者1移至最高有效位,移至最高有效

127、位,变成变成0.1.或或1.0.形式。形式。2024/9/5148计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算例例2.23:一一个个浮浮点点数数表表示示格格式式为为:16位位浮浮点点数数,阶阶码码6位位,1位位阶阶符符,用用移移码码表表示示,尾尾数数10位位,包包含含1位位数数符符,用用补补码码表表示示,阶阶码码在在前前,尾尾数数(包包括括数数符符)在在后后。试试写写出出下下列列X和和Y的规格化浮点数形式。的规格化浮点数形式。X=+55.75;Y=-27/128。解:解:(1)X=(+110111.11)2=+0.110111112110,根据浮点数格式要

128、求可得出根据浮点数格式要求可得出:EX=+00110,MX=+0.110111110,EX移移=100110,MX补补=0.110111110所以所以X的规格化的浮点数为:的规格化的浮点数为:X浮浮=1001100.110111110(2)Y=(-0.0011011)2=-0.110112-10,EY=-00010,MY=-0.110110000,EY移移=011110,MY补补=1.001010000,所以所以Y浮浮=0111101.0010100002024/9/5149计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算例例2.24:若:若X和和Y均是符合均

129、是符合IEEE754标准的单精度浮标准的单精度浮点数。点数。(1)若浮点数若浮点数X存储形式为存储形式为41360000H,求,求X真值。真值。(2)若若Y=-135.625,求,求Y的浮点数表示的浮点数表示解解(1)X浮浮=01000001001101100000000000000000B按表按表2.15真值公式及单精度浮点数格式,可知:真值公式及单精度浮点数格式,可知:Ms=0,E=EsE1E2Em=10000010B=130D,1.M1M2.Mn=1.01101100000000000000000B,所以,所以,X=(-1)Ms(1.M1M2.Mn)2E-127=(-1)0(1.0110

130、11)2130-127=(+1022.011)2=(+11.375)102024/9/5150计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算(2)若若Y=-135.625,求,求Y的浮点数表示。的浮点数表示。解:解:Y=(-10000111.101)2Y=-1.000011110127=(-1)1(1.0000111101)2134-127因此,因此,Ms=1,E=EsE1E2Em=134D=10000110B,1.M1M2.Mn=1.00001111010000000000000B,求出求出:Y浮浮=1100001100000111101000000000

131、0000B=C307A000H2024/9/5151计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算某仪表型号为XJY-160,可采集工业现场的模拟信号,以IEEE 754单精度浮点数形式存放设计算机通讯返回浮点数为40H, 8CH, 00H, 00H(从高到底)试计算实际值为多少?2024/9/5152计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示在浮点数的表示范围中,有两种情况称为在浮点数的表示范围中,有两种情况称为机器零机器零:一是浮点数的尾数

132、为一是浮点数的尾数为0,无论阶码为何值;二是当,无论阶码为何值;二是当阶码的值比它所能表示的最小值还要小时,无论尾阶码的值比它所能表示的最小值还要小时,无论尾数为何值。数为何值。浮点数的表示范围浮点数的表示范围通常有通常有4个定界点:个定界点:最小数、最最小数、最大负数、最小正数和最大数大负数、最小正数和最大数。位于最大负数和最小。位于最大负数和最小正数之间的数正数之间的数(除除0外外)浮点数均无法表示,称为浮点数均无法表示,称为下下溢溢。计算机对于下溢视为机器零。当一个数大于最。计算机对于下溢视为机器零。当一个数大于最大数或者小于最小数时称为大数或者小于最小数时称为上溢上溢,上溢又称溢出,上

133、溢又称溢出。2024/9/5153计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.1浮点数的表示浮点数的表示【例例2.25】写出例写出例2.23的浮点数格式的规格化范围的浮点数格式的规格化范围。浮点数表示真值最小数1111111.000000000-1231=-231最大负数0000001.011111111-(2-1-2-9)2-32最小正数0000000.1000000002-12-32=2-33最大数1111110.111111111(1-2-9)231教材+2024/9/5154计算机组成与结构计算机组

134、成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.2浮点数的加浮点数的加/减运算减运算设有两浮点数设有两浮点数X,Y实现实现XY运算,其中:运算,其中:X=MX2EX;Y=MY2EY。均为规格化数。均为规格化数。执行以下五步完成运算:执行以下五步完成运算:(1)“对阶对阶”操作操作比较两浮点数阶码的大小,求出其差比较两浮点数阶码的大小,求出其差E,并保留其大值,并保留其大值E,E=max(EX,EY)。当当E0时,将阶码值小的数的时,将阶码值小的数的尾数右移尾数右移E位位,并将其,并将其阶阶码值加上码值加上E,使两数阶码值相等,该操作称

135、,使两数阶码值相等,该操作称“对阶对阶”。尾数右移时,对尾数右移时,对原码表示的尾数原码表示的尾数,符号位不参加移位,符号位不参加移位,尾数数值部分的高位补尾数数值部分的高位补0;对;对补码表示的尾数补码表示的尾数,符号位参,符号位参加右移,并保持原符号位不变。加右移,并保持原符号位不变。2024/9/5155计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.2浮点数的加浮点数的加/减运算减运算(2)尾数的加尾数的加/减运算减运算执行对阶后,两尾数进行加执行对阶后,两尾数进行加/减运算,得到两数之减运算,得到两数

136、之和和/差。差。(3)结果规格化结果规格化当运算的结果当运算的结果(和和/差差)不是规格化数时,需将它转变不是规格化数时,需将它转变成规格化数。成规格化数。双符号位的双符号位的原码规格化尾数原码规格化尾数,其数值最高位应为,其数值最高位应为1,即,即00.1*或或11.1*双符号位的双符号位的补码规格化尾数补码规格化尾数,其数值最高位应与符,其数值最高位应与符号位相反,即号位相反,即00.1*或或11.0*2024/9/5156计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.2浮点数的加浮点数的加/减运算减运算

137、(4)舍入舍入在在对对阶阶或或右右规规过过程程中中,尾尾数数要要向向右右移移位位,可可能能使使得得被被右右移移的的尾尾数数低低位位部部分分丢丢失失,从从而而造造成成一一定定的的误误差差,因因此要采用某种方法进行舍入处理。此要采用某种方法进行舍入处理。简单的舍入方法简单的舍入方法有有3种:种:截断法:截断法:实质上没舍入,只将多余的位数全部舍去;实质上没舍入,只将多余的位数全部舍去;末位恒置末位恒置1法法:始终在舍入结果最末位置:始终在舍入结果最末位置1;0舍舍1入入法法:类类似似十十进进制制的的四四舍舍五五入入,当当多多余余位位最最高高位位为为1时,在尾数最低位上加时,在尾数最低位上加1,否则

138、直接舍去多余位。,否则直接舍去多余位。2024/9/5157计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.2浮点数的加浮点数的加/减运算减运算IEEE754标准规定标准规定了以下了以下4种可选的舍入模式种可选的舍入模式:向向上上舍舍入入:尾尾数数为为正正数数时时,只只要要多多余余位位不不全全为为0,就就向向最最低有效位进低有效位进1;为负数时采用简单截断法。;为负数时采用简单截断法。向向下下舍舍入入:尾尾数数为为正正数数时时,只只要要多多余余位位不不全全为为0,就就简简单单截尾;为负数时,则向最低有效位进截尾

139、;为负数时,则向最低有效位进1。向向0舍舍入入:朝朝数数轴轴原原点点方方向向舍舍入入,无无论论正正负负数数,都都采采用用简简单截尾,使绝对值总是变小。该方法容易累积误差单截尾,使绝对值总是变小。该方法容易累积误差。就就近近舍舍入入:舍舍入入到到最最接接近近的的数数,类类似似四四舍舍五五入入。当当多多余余位位的的值值超超出出最最低低有有效效位位权权值值一一半半时时向向最最低低有有效效位位进进1;小小于于权权值值一一半半时时则则舍舍去去;等等于于权权值值一一半半时时,若若最最低低有有效效位位为为0(偶偶数数)就舍去,若为就舍去,若为1(奇数奇数)则进则进1。该方法不易累积误差。该方法不易累积误差。

140、2024/9/5158计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.2浮点数的加浮点数的加/减运算减运算(5)检查阶码是否溢出检查阶码是否溢出:阶阶码码溢溢出出就就是是浮浮点点数数的的溢溢出出。在在进进行行左左规规和和右右规规的的过过程程中中,由由于于阶阶码码的的增增减减,阶阶码码可可能能出出现现正正溢溢出出(右规右规)和负溢出和负溢出(左规左规)两种情况。两种情况。当当阶阶码码正正溢溢出出时时,表表明明浮浮点点数数发发生生上上溢溢(溢溢出出),必必须须报报告告处处理理器器;当当阶阶码码负负溢溢出出时时,表表

141、明明浮浮点点数数发发生生下溢,则将浮点数视为下溢,则将浮点数视为机器零机器零。2024/9/5159计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算规格化浮点数规格化浮点数加减运算流程加减运算流程2024/9/5160计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算【例例2.26】两浮点数相加,求两浮点数相加,求X+Y。已知:已知:X=20100.11011011,Y=2100(-0.10101100)解解:计算过程:计算过程:对阶操作对阶操作阶差阶差E=EX补补+-EY补补=00010+11100=11110X阶码小,阶码小

142、,MX右移右移2位,保留阶码位,保留阶码E=00100。MX补补=000011011011下划线上的数是右移出去而保留的附加位。下划线上的数是右移出去而保留的附加位。尾数相加尾数相加MX补补+MY补补=000011011011+1101010100=1110001010112024/9/5161计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算规格化操作规格化操作左规,移左规,移1位,结果位,结果=110001010110;阶码阶码-1,E=00011。舍入舍入附加位最高位为附加位最高位为1,在所得结果最低位,在所得结果最低位+1,则有:,则有:M补补=1100

143、010110,M=-0.11101010。判溢出判溢出阶码符号位为阶码符号位为00,故不溢出,最终结果为:,故不溢出,最终结果为:X+Y=2011(-0.11101010)2024/9/5162计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.3浮点数的表示和运算浮点数的表示和运算2.3.3浮点数的乘浮点数的乘/除运算除运算两两浮浮点点数数相相乘乘:乘乘积积的的阶阶码码为为相相乘乘两两数数阶阶码码之之和和,尾数尾数为为相乘两数的尾数之积相乘两数的尾数之积。两两浮浮点点数数相相除除:商商的的阶阶码码为为被被除除数数的的阶阶码码减减去去除除数数的的阶阶码码得得到

144、到的的差差,尾尾数数为为被被除除数数的的尾尾数数除除以以除除数数的的尾数所得的商尾数所得的商。参参加加运运算算的的两两个个数数都都为为规规格格化化浮浮点点数数,运运算算都都可可能能出出现现结结果果不不满满足足规规格格化化要要求求的的问问题题,必必须须进进行行规规格格化、舍入和判溢出等操作。化、舍入和判溢出等操作。下面举例说明浮点数乘法的运算步骤。下面举例说明浮点数乘法的运算步骤。2024/9/5163计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算【例例2.27】阶阶码码4位位(移移码码),尾尾数数8位位(补补码码,含含1位位符符号位号位),阶码以,阶码以2为

145、底。运算结果仍取为底。运算结果仍取8位尾数。位尾数。设:设:X=2-50.1110011,Y=23(-0.1110010)X,Y为为真真值值,此此处处阶阶码码用用十十进进制制表表示示,尾尾数数用用二二进进制表示。运算过程中阶码取双符号位。制表示。运算过程中阶码取双符号位。解:解:(1)求乘积的阶码求乘积的阶码。乘积的阶码为两数阶码之和。乘积的阶码为两数阶码之和。EX+EY移移=EX移移+EY补补=00011+00011=00110(2)尾数相乘尾数相乘。用定点数相乘的方法,得结果为:。用定点数相乘的方法,得结果为:XY补补=1.00110011001010(尾数部分尾数部分)(3)规格化处理规

146、格化处理。本例尾数已规格化,不需处理。本例尾数已规格化,不需处理。2024/9/5164计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算(4)舍入舍入。尾数。尾数(乘积乘积)低位部分的最高为低位部分的最高为1,需要舍,需要舍入,在乘积高位部分的最低位加入,在乘积高位部分的最低位加1,因此,因此XY补补=1.0011010(尾数部分尾数部分)(5)判溢出判溢出。阶码未溢出,故结果正确。阶码未溢出,故结果正确。所以,所以,XY=2-2(-0.1100110)浮点数的除法运算与乘法类似,也分求商的阶码、浮点数的除法运算与乘法类似,也分求商的阶码、尾数相除、规格化、舍

147、入和判溢出尾数相除、规格化、舍入和判溢出5个步骤,不再个步骤,不再详细讨论。详细讨论。2024/9/5165计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU运算器是计算机的重要组成部分之一,用来实现全运算器是计算机的重要组成部分之一,用来实现全部的算术和逻辑运算,因此运算器常被称为部的算术和逻辑运算,因此运算器常被称为算术逻算术逻辑单元辑单元(ArithmeticLogicUnit,简称,简称ALU)。运算器的核心部件是运算器的核心部件是加法器加法器,加减乘除运算都是通,加减乘除运算都是通过加法器进行的,因此过加法器进行的,

148、因此加快运算器的速度实质上就加快运算器的速度实质上就是加快加法器的速度是加快加法器的速度。2024/9/5166计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器一位全加器:一位全加器:不考虑进位输入,两个数码不考虑进位输入,两个数码Ai,Bi相加称相加称为为半加法器半加法器,若考虑进位输入,若考虑进位输入Ci-1相加,则称为相加,则称为全加器全加器。设有两个操作数设有两个操作数A和和BA=A0A1A2An,B=B0B1B2Bn,全加和全加和Si及进位输出及进位输出Ci的逻

149、辑表达式分别为:的逻辑表达式分别为:2024/9/5167计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器加法器由加法器由串行串行和和并行并行之分。之分。串行加法器:串行加法器:只有一个全加器,数据逐位送入加法只有一个全加器,数据逐位送入加法器进行运算;器进行运算;并并行行加加法法器器:由由多多个个全全加加器器组组成成,其其位位数数的的多多少少取取决于机器的字长,数据的各位同时运算决于机器的字长,数据的各位同时运算:2024/9/5168计算机组成与结构计算机组成与结构

150、第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器串串行行加加法法器器如如图图所所示示。FA是是全全加加器器,A、B是是两两个个具具有有右右移移功功能能的的寄寄存存器器,C为为进进位位触触发发器器。由由移移位位寄寄存存器器从从低低位位到到高高位位逐逐位位串串行行提提供供操操作作数数相相加加。如如果果操操作作数数为为n位位,加加法法就就要要分分n次次进进行行,每每次次产产生生一一位位和和,并并串串行行地地送送回回A寄寄存存器器。进位触发器用来寄存进位信号,以便参与下一次的运算。进位触发器用来寄存进位信号,以便

151、参与下一次的运算。2024/9/5169计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器串串行行加加法法器器的的特特点点:器器件件少少、成成本本低低,但但运运算算速速度度太慢,所以除了某些低速的专用运算外很少采用。太慢,所以除了某些低速的专用运算外很少采用。并并行行加加法法器器可可同同时时对对数数据据的的各各位位相相加加,但但存存在在一一个个加加法法的的最最长长运运算算时时间间问问题题。这这是是因因为为低低位位运运算算所所产生的进位会影响高位的运算结果。产生的进位会影响高

152、位的运算结果。并并行行加加法法器器的的最最长长运运算算时时间间主主要要由由进进位位信信号号的的传传递递时时间间决决定定,而而每每个个全全加加器器本本身身的的求求和和延延迟迟只只是是次次要要因因素素。显显然然,提提高高并并行行加加法法器器速速度度的的关关键键是是尽尽量量加加快进位产生和传递的速度。快进位产生和传递的速度。2024/9/5170计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-进位的产生和传递进位的产生和传递并并行行加加法法器器中中的的每每

153、一一个个全全加加器器都都有有一一个个低低位位送送来来的的进进位位输输入和一个传递给高位的进位输出。入和一个传递给高位的进位输出。进进位位表表达达式式中中“AiBi”取取决决于于本本为为参参加加运运算算的的两两个个数数,而而与与低低位位进进位位无无关关,因因此此称称AiBi为为进进位位产产生生函函数数(本本次次进进位位产产生生);用用Gi来来表表示示,其其含含义义是是:若若本本位位的的两两个个输输入入均均为为1,必必然然向高位产生进位。向高位产生进位。(Ai Bi)Ci-1则则不不但但与与本本位位的的两两个个数数有有关关,还还依依赖赖于于低低位位送送来来的的进进位位,因因此此称称为为进进位位传传

154、递递函函数数(低低位位进进位位传传递递),用用Pi来来表表示示,其其含含义义是是:当当两两个个输输入入中中有有一一个个位位1,低低位位传传来来的的进进位位Ci-1将向更高位传送将向更高位传送。进位表达式可写为:进位表达式可写为:Ci=Gi+Pi Ci-12024/9/5171计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-进位的产生和传递进位的产生和传递串行进位的并行加法器:串行进位的并行加法器:把把n个全加器串接起来,个全加器串接起来,就可以进行两

155、个就可以进行两个n位数的相加。这种加法器称为,位数的相加。这种加法器称为,如图如图2.14所示。所示。2024/9/5172计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-进位的产生和传递进位的产生和传递串行进位又称为串行进位又称为行波进位行波进位,每一级进位直接依赖于,每一级进位直接依赖于前前一级的进位一级的进位,即进位信号时逐级形成的。其中:,即进位信号时逐级形成的。其中:串行进位的并行加法器的串行进位的并行加法器的总延迟时间与字长成正比总延迟时

156、间与字长成正比,字长越长,总延迟时间越长字长越长,总延迟时间越长2024/9/5173计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-进位的产生和传递进位的产生和传递可控可控4位二进制数加法位二进制数加法/减法电路减法电路2024/9/5174计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位

157、串行进位方式的进位延迟时间太长,要提高加法运算串行进位方式的进位延迟时间太长,要提高加法运算速度,就要尽可能减少进位延迟时间,改进进位方式。速度,就要尽可能减少进位延迟时间,改进进位方式。并行进位又叫做先行进位、同时进位,其并行进位又叫做先行进位、同时进位,其特点特点是是各级进位信号同时形成。各级进位信号同时形成。2024/9/5175计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位并并行行进进位位中中。各各式式所所有有各各位位进进位

158、位均均不不依依赖赖于于低低位位进进位位,各各位位进进位位可可同同时时产产生生。这这种种进进位位方方式式是是快快速速的的。但但随随着着加加法法器器位位数数的的增增加加,Ci的的逻逻辑辑表表达达式式会会变变得得越越来来越越长长,输输入入变变量量会会越越来来越越多多,会会使使电电路路结结果果变变得很复杂,所以完全采用并行进位是不现实的。得很复杂,所以完全采用并行进位是不现实的。分组并行进位方式:分组并行进位方式:把把n位字长分为若干小组,在位字长分为若干小组,在组内组内各位之间实行各位之间实行并行快速进位并行快速进位,在,在组间组间既可以采既可以采用用串行进位串行进位方式,也可以采用方式,也可以采用

159、并行快速进位并行快速进位方式,方式,因此有两种情况:因此有两种情况:2024/9/5176计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位单级先行进位方式单级先行进位方式(组内并行、组间串行组内并行、组间串行):以:以16位加法器为位加法器为例,可分为四组例,可分为四组,每组四位。第每组四位。第1小组组内进位逻辑函数小组组内进位逻辑函数C1-C4表达式与前述相同,表达式与前述相同,C1-C4信号同时产生信号同时产生,实现上述进位实现上

160、述进位逻辑函数的电路称为逻辑函数的电路称为4位先行进位电路位先行进位电路(CarryLookAhead,简称,简称CLA),如图,如图2.14所示。所示。2024/9/5177计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位利用这种利用这种4位的位的CLA电路以及进位产生电路以及进位产生/传递电路和求和电传递电路和求和电路可以构成路可以构成4位的位的CLA加法器。用加法器。用4个这样的个这样的CLA加法器很加法器很容易构成容易构成16

161、位的单级先行进位加法器位的单级先行进位加法器,如图,如图2.15所示。所示。2024/9/5178计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位多多级级先先行行进进位位方方式式(组组内内并并行行、组组间间并并行行):在在单单级级先先行行进进位位电电路路中中,进进位位延延迟迟时时间间是是和和组组数数成成正正比比的的,组组数数越越多多,进进位位的的延延迟迟时时间间越越长长。因因此此,当当加加法法器器的的字字长长较较长长时时,为为了了加加

162、快快进进位位传传递递时时间间,就就有有必必要要采采用用多多级级先先行行进进位位方方式式。仍仍以以字字长长为为16位位的的加加法法器器为为例例子子,分分析析两两级级先先行行进进位位加加法法器的设计方法。第一小组的进位输出器的设计方法。第一小组的进位输出C4可以写成:可以写成:2024/9/5179计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位Gi*称称为为组组进进位位产产生生函函数数,Pi*称称为为组组进进位位传传递递函函数数。这两个

163、辅助函数只与这两个辅助函数只与Pi、Gi有关。依次类推:有关。依次类推:2024/9/5180计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.1串行加法器和并行加法器串行加法器和并行加法器并行加法器并行加法器-快速进位快速进位为了要产生组进位函数,需要对原来的为了要产生组进位函数,需要对原来的CLA电路进行修改:电路进行修改:第一小组内产生第一小组内产生G1*、P1*、C3、C2、C1,不产生不产生C4;第二小组内产生第二小组内产生G2*、P2*、C7、C6、C5,不产生不产生C8;第三小组内产生第三小组内产生G3*

164、、P3*、C11、C10、C9,不产生不产生C12;第四小组内产生第四小组内产生G4*、P4*、C15、C14、C13,不产生不产生C16这种电路称为成组先行进位电路(Block Carry Look Ahead,简称BCLA),如图 2.16所示。2024/9/5181计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算利用这种利用这种4位的位的BCLA电路及进位产生与传递电路和求和电电路及进位产生与传递电路和求和电路可构成路可构成4位的位的BCLA加法器。加法器。16位两级先行进位加法器位两级先行进位加法器可可有有4个个BCLA加法器和加法器和1个个CLA电路

165、组成,如图电路组成,如图2.17所示。所示。2024/9/5182计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构算术逻辑单元简称算术逻辑单元简称ALU(ArithmeticLogicUnit),是一种功能较强的组合逻辑电路。它能进行多种算是一种功能较强的组合逻辑电路。它能进行多种算术运算和逻辑运算。术运算和逻辑运算。ALU的的基基本本逻逻辑辑结结构构是是超超前前进进位位加加法法器器,它它是是通通过过改改变变加加法法器器的的Gi、Pi和和控控制制端端来来获获得得

166、多多种种运运算算能能力力的的.下下面面通通过过介介绍绍国国际际流流行行的的美美国国SN74181型型四四位位ALU中规模集成电路来学习中规模集成电路来学习ALU的原理。的原理。2024/9/5183计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构1位算术逻辑运算单元是由位算术逻辑运算单元是由1位全加器和位全加器和1位逻辑运位逻辑运算功能部件组合而成,第算功能部件组合而成,第i位运算单元的逻辑框图位运算单元的逻辑框图如图如图2.18。显然,算术运算由全加器完成,逻

167、辑运算是在控制显然,算术运算由全加器完成,逻辑运算是在控制信号信号S3S0控制下由逻辑运算功能部件完成,其中控制下由逻辑运算功能部件完成,其中S3S2用来控制完成用来控制完成4种逻辑运算后产生种逻辑运算后产生Xi进入全加进入全加器;器;S1S0用来控制完成用来控制完成4种逻辑运算后产生种逻辑运算后产生Yi进入进入全加器,它们之间的控制关系如表全加器,它们之间的控制关系如表2.16所示所示。2024/9/5184计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算表2.161位运算单元功能表S3S2XiS1S0Yi001000101101011110图 2.18 1

168、位运算单元逻辑框图2024/9/5185计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构将将4位运算单元位运算单元(i=0,1,2,3)集成在一个芯片上就构成了集成在一个芯片上就构成了SN74181芯片芯片,对于算术运算来说,片内的,对于算术运算来说,片内的4位构成一个小位构成一个小组,小组内采用并行进位方式。同时产生的进位信号组,小组内采用并行进位方式。同时产生的进位信号C0C1和和C2参加片内的高端参加片内的高端3位的求全加和运算。位的求全加和运算。表表2.

169、17为为74181ALU的正逻辑的运算功能表的正逻辑的运算功能表。对正逻辑操作。对正逻辑操作数数,算术运算称高电平操作算术运算称高电平操作,逻辑运算称正逻辑操作逻辑运算称正逻辑操作(即高电即高电平为平为“1”,低电平为,低电平为“0”)。对于负逻辑操作数则相反。对于负逻辑操作数则相反。由于由于S3S0有有16种状态组合,因此对正逻辑输入与输出而种状态组合,因此对正逻辑输入与输出而言,有言,有16种算术运算功能和种算术运算功能和16种逻辑运算功能。对于负逻种逻辑运算功能。对于负逻辑输入与输出辑输入与输出,也有也有16种算术运算功能和种算术运算功能和16种逻辑运算功能。种逻辑运算功能。2024/9

170、/5186计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构SN74181芯片芯片SN74181能执行能执行16种算术运算和种算术运算和16种逻辑运算种逻辑运算M是是状态控制端状态控制端,M=H执行逻辑运算;执行逻辑运算;M=L执行算术运算执行算术运算S0S3是是运算选择控制端运算选择控制端,决定电路执行哪种运算,决定电路执行哪种运算A3A0,B3B0是是参加运算两数参加运算两数Cn是是ALU最低位进位输入最低位进位输入F3F0是是运算结果运算结果注脚注脚3表示最

171、高位。表示最高位。2024/9/5187计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算SN74181型型ALU逻辑图及在正逻辑下功能表逻辑图及在正逻辑下功能表功能表中功能表中“加加”表示算术加,表示算术加,“+”表示逻辑加。表示逻辑加。S3S2S1S0正逻辑M=H逻辑运算M=L算术运算Cn=1Cn=0LLLL/AAA+1LLLH/(A+B)A+B(A+B)加1LLHL/ABA+B(A+B)加1LLHH0减1“0”LHLL/(AB)A加(/AB)A加(/AB)加1LHLH/B(AB)加(/A+B)(AB)加(/A+B)加1LHHLABA减B减1A减BLHHHA

172、/B(AB)减1AB2024/9/5188计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算SN74181型型ALU逻辑图及在正逻辑下功能表(续)逻辑图及在正逻辑下功能表(续)功能表中功能表中“加加”表示算术加,表示算术加,“+”表示逻辑加。表示逻辑加。S3S2S1S0正逻辑M=H逻辑运算M=L算术运算Cn=1Cn=0HLLL/A+BA加(AB)A加(AB)加1HLLH/(AB)A加BA加B加1HLHLB(A+/B)加(AB)(A+/B)加(AB)加1HLHHAB(AB)减1ABHHLL“1”A加AA加A加1HHLHA+/BA加(A+B)A加(A+B)加1HHH

173、LA+BA加(A+/B)A加(A+/B)加1HHHHAA减1A2024/9/5189计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构对于表对于表2.17的说明:的说明:(1)H高电平高电平,L低电平;低电平;(2)算术运算操作是用补码表示法来表示的。其中算术运算操作是用补码表示法来表示的。其中“加加”是指算术加是指算术加,运算时要考虑进位运算时要考虑进位,而符号而符号“”是指是指“逻辑加逻辑加”。其次,减法是用补码方法进行。其次,减法是用补码方法进行的,其中数的

174、反码是内部产生的,而末位加的,其中数的反码是内部产生的,而末位加“1”则是通过则是通过Cn来体现的来体现的。2024/9/5190计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构SN74181芯片的电路结构逻辑图芯片的电路结构逻辑图如图如图2.19所示。由所示。由于该芯片可工作在正逻辑或负逻辑状态下,以完成于该芯片可工作在正逻辑或负逻辑状态下,以完成不同的逻辑运算功能。不同的逻辑运算功能。图图2.19大体可以分为三个部分大体可以分为三个部分:图上方的两级逻辑:图

175、上方的两级逻辑门从门从AiBi输入到输入到XiYi输出,主要完成各种逻辑运算输出,主要完成各种逻辑运算功能;图下部由功能;图下部由4个异或门完成个异或门完成4位全加和位全加和F3F2F1F0的功能;图中部其他电路是由小组内的并行进位逻的功能;图中部其他电路是由小组内的并行进位逻辑,只是它既能输出实现小组间串行进位的进位信辑,只是它既能输出实现小组间串行进位的进位信号号C3,也能输出实现小组间并行进位所需要的,也能输出实现小组间并行进位所需要的P3*和和G3*。2024/9/5191计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2024/9/5192计算机组成

176、与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构以以正逻辑正逻辑为例,为例,M用于区别算术运算还是逻辑运算;用于区别算术运算还是逻辑运算;S3S0的不同取值可以实现不同的运算。的不同取值可以实现不同的运算。例如当例如当M=H,S3S0=0110时,时,74181作逻辑运算作逻辑运算A B,M=L,S3S0=0110,74181作算术运算。作算术运算。在正逻辑条件下,在正逻辑条件下,M=L,S3S0=0110且且Cn=1完成完成A减减B减减1操作。若想完成操作。若想完成A减

177、减B运算,可使运算,可使Cn=0。注意,注意,ALU为组合逻辑电路,因此应用为组合逻辑电路,因此应用ALU时其时其输入端口输入端口A和和B必须与锁存器相连,且在运算过程必须与锁存器相连,且在运算过程中锁存器内容不变。输出也须送到寄存器中保存中锁存器内容不变。输出也须送到寄存器中保存。2024/9/5193计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构SN74181的的4位作为一个小组,小组间既可以采用位作为一个小组,小组间既可以采用串行进位,也可以采用并行进位

178、。当采用串行进位串行进位,也可以采用并行进位。当采用串行进位时,只要把低一片的时,只要把低一片的Cn+4(向高位进位向高位进位)与高一片的与高一片的Cn(最低位的外来进位最低位的外来进位)相连即可,如图相连即可,如图2.20。图 2.20 4片74181构成16位ALU2024/9/5194计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算2.4算术逻辑单元算术逻辑单元ALU2.4.2算术逻辑单元算术逻辑单元ALU的功能和机构的功能和机构当当采采用用组组间间并并行行进进位位时时,需需要要增增加加一一片片74182,这这是是一一个个先先行行进进位位部部件件。741

179、82可可以以产产生生3个个进进位位信信号号Cn+x、Cn+y和和Cn+z,并并且且还还能能产产生生大大组组进进位位产产生生函函数数G*和和大大组组进进位位传传递递函函数数P*,可可供供组组成成位位数数更更多的多的ALU时使用。时使用。图图2.21是是由由8片片74181和和2片片74182构构成成的的32位位两两级级行行波波ALU。各各片片74181输输出出的的组组进进位位产产生生函函数数Gi和和组组进进位位传传递递函函数数Pi作作为为74182的的输输入入,而而74182的的输输出出的的进进位位信信号号Cn+x、Cn+y和和Cn+z作作为为74181的的输输入入,74182输输出出的的大大组

180、组进进位位产产生生函函数数G*和和大大组组进进位位传传递函数递函数P*可作为更高一级可作为更高一级74182的输入。的输入。2024/9/5195计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算图 2.21 32位两级行波ALU 大组进位产生函数大组进位传递函数2024/9/5196计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算74181结结构构适适合合于于组组成成各各种种位位数数的的ALU部部件件。表表2.17列列出出了了具有不同位数和结构的具有不同位数和结构的ALU所需芯片数目和加法时间所需芯片数目和加法时间。位数ALU

181、结构总的加法时间(ns)芯片片数74181741824一级ALU21108一级行波ALU362016一级行波ALU604016两级ALU364132一级行波ALU1108032两级行波ALU628248一级行波ALU16012048两级行波ALU10112348三级ALU6412464一级行波ALU21016064两级行波ALU13616464三级ALU881652024/9/5197计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算本章小结:本章小结:数制有两个要素:基数和各位的权。计算机中数制有两个要素:基数和各位的权。计算机中的信息均以二进制形式来表示。的

182、信息均以二进制形式来表示。本章简要地介绍了十进制、八进制、十六进制本章简要地介绍了十进制、八进制、十六进制之间的相互转换,着重介绍了用于表示十进制之间的相互转换,着重介绍了用于表示十进制数值的二进制编码,即数值的二进制编码,即BCD码。码。对于定点数和浮点数在计算机内的表示和运算对于定点数和浮点数在计算机内的表示和运算本章也做了详细的论述和说明。本章也做了详细的论述和说明。算术逻辑单元算术逻辑单元ALU的功能和结构是本章的一个的功能和结构是本章的一个重要内容,本章对其功能、结构以及应用做了重要内容,本章对其功能、结构以及应用做了详细的介绍详细的介绍。2024/9/5198计算机组成与结构计算机组成与结构 第第2 2章章 数据的表示和运算数据的表示和运算【习习题题8】X=-0.1101,Y=0.1101,用用补补码码一一位位乘乘法法的的校校正正法法计计算算XY。解:。解:X补补=11.0011,Y补补=00.1011XY补=11.01110001XY= -0.100011112024/9/5199

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号