版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理,主讲老师:姜丽帆,第二章:运算方法和运算器 第一节:数据与文字的表示方法,2.1.1 数据格式,计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。一般来说,定点格式允许的数值范围有限,但要求的处理硬件比较简单。而浮点格式允许的数值范围很大,但要求的处理硬件比较复杂。,1.定点数的表示方法 定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数据表示成纯小数或纯整数。 纯小数 数值部分 数符 小数点位置,数符 数值部分 小数点位置 纯小数的表示范围(绝对值) 0|12n (2.1) 纯整数的表示范围(绝对
2、值) 0|2n1 (2.2),纯整数,优点:表示简单、直观。 缺点: I.用定点表示时,对于既有整数又有小数的数据。需要设定比例因子。 II.定点数表示的范围比较小,容易产生溢出。,2.浮点数的表示方法 浮点表示:小数点位置可以自由浮动的表示方法。 一个十进制数 352.47=3.5247102= =3524.710-1=0.35247103 对于二进制数 11.0101=0.110101210 对于计算机中一个任意进制N可以写成 e.m(2.3) m :为浮点数的尾数,是一个纯小数。 e :为浮点的指数,常称为阶码,是一个整数。 R :为基数,不同进位制为不同常数。,一个机器浮点数应当由阶码
3、和尾数及其符号位组成: 阶符 阶码 数符 尾数,为便于软件移植,按照IEEE754的标准,32 位浮点数和64位浮点数的标准格式为: 31 30 23 22 0 32位浮点数 数符 小数点位置 63 62 52 51 0 64位浮点数 数符 小数点位置 32位:x=(-1)s(1.M)2E-127 64位: x=(-1)s(1.M)2E-1023,E:阶符隐含,用移码表示 e:实际的指数值,例1.写出十进制数-5的IEEE754编码32位浮点数的二进制格式。 解: (-5)10=(-101)2 规格化表示:-1.0122 e=2 阶码:E=2+127=0000,0010+0111,1111 =
4、1000,0001 尾数:.01000 (共23位) 最后得到二进制格式: 1100,0000,1010,0000,0000,0000,0000,0000 =C0A00000H,例2.若浮点数x的二进制存储格式为41360000H,求其32位浮点数的十进制值。 解:41360000H =0100,0001,0011,0110,0000,0000,0000,0000 s 阶码(8位) 尾数(23位) 指数e=阶码-127=1000,0010-0111,1111 =0000,0011=(3)10 尾数1.M=1.011,0110,0000,0000,0000,0000 =1.011011 得x=(
5、-1)s1.M2e=+(1.011011)23 =1011.001=(11.375)10 。,浮点数规格化: 即小数点后第一位数字是一个有效值,如果出现了非有效数字,通过修改阶码,并同时左右移尾数的方法,使其变成规格化数。 左规: 右规: 尾数向左移一位 尾数向右移一位 阶码减1 阶码加1 0.01101 1.10110 0.1101021 0.1101121,机器零表示: I.尾数为零,不论阶码为何值,该浮点数为零。 II.不论尾数为何值,阶码比能表示的最小值更小,该浮点数为零。,3.十进制数串的表示方法 在机器中,十进制数采用BCD码表示: I. 字符串形式:即一个字节存放一个十进制的数或
6、符号位。,如:98576放存储器中,采用BCD码表示,一个字节存放一个十进制数: 为了指明这个数,只需给出该数在主存中的首地址和长度,这种方式表示的十进制字符串主要用在非数值计算的应用。,2346,首地址,2346+L-1,00001001,长度L,II.压缩的十进制数串形式: a)一个字节存放两个十进制的数位; b)用它表示一个数,要占用主存连续多个字节; c)符号位占半个字节,并放在最低数字位之后; 用C表示正号 用D表示负号 +458 表示为 458C -50 表示为 050D d)便于用于十进制数的算术运算;,第二章:运算方法和运算器 第一节:数据与文字的表示方法,2.1.1 数据格式
7、 2.1.2 数的机器码表示,在计算机中,所有的数都用二进制形式表示: 一.机器数和真值: 机器数数的符号用二进制数”0”或”1”来表示,且符号位总是在该数的最高数值位之前的那种数称为机器数。 真值原来一般书写形式表示的数称为机器数的真值。 二.一个有符号机器数的表示: 有四种形式:原码、补码、反码、移码。,1.原码表示法: 若定点小数的原码形式为0 .12n,则原码表示的定义是,式中原是机器数,是真值 例如:+0.1001,则原0.1001 -0.1001,则原1.1001,对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式: +0原=0.000.0 -0原=1.000.0 若定点
8、整数的原码形式为012n,则原码表示的定义是:,采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。,2.补码表示法 我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4点正; 而有一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表
9、示 -3+9(mod12)mod12的意思就是12模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式。,上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉。从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就比较方便。 若定点小数补码形式为0.12n,则补码表示的定义是,例如:+0.1011,则补0.1011 -0.1011,则补10+ =10.0000-0.10111.0101 对于0,0补0补0.0000 (mod 2) 注意,0的补码表示只有一种形式。 采用补码表示法进行减法运算就比原码方便得多了。因为不
10、论数是正还是负,机器总是做加法,减法运算可变为加法运算。但根据补码定义,求负数的补码要从2减去|x|。为了用加法代替减法,结果还得在求补码时作一次减法,这显然是不方便的。下面介绍的反码表示法可以解决负数的求补问题。,3.反码表示法 所谓反码,就是二进制的各位数码0变为1,1变为0。 对定点小数,反码表示的定义为:,其中n代表数的位数。,一般情况下,对于正数0.12n,则: 反0.12n 对于负数 0.12n ,则有: 反1. 12n 对于0,有0反和0反之分: 0反0.00.0 0反1.11.1,我们比较反码与补码的公式 反(22n) 补2 可得到,这就是通过反码求补码的重要公式。这个公式告诉
11、我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。 例如: x=-0.1101 x补=1.0011,4.移码表示法 移码通常用于表示浮点数的阶码。由于阶码是个n位的整数,所以假定定点整数移码形式为 012n时,移码的定义是,例如,当正数 x=+10100时, 移2510100=110100 ; 当x=-10100时, 移25 -10100=001100 ; 当x=00000时, +0移2500000=100000 ; -0移25 -00000=100000 ; +0移-0移 ,移码表示中零是唯一的。 进一步观察我们发现,移码和补码仅差一个符号位
12、。,小结:上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。,下面通过两个例子用数轴形式表示定点数和浮点数表示范围。 例3. 以定点整数为例,用数轴形式说明原码,反码,补码表示范围和可能的数码组合情况。 解:二进制数 x=x012n (x0为符号 位,总共n+1位) 对应原码,反码,补码的x的真值。,原码:-(2n-1) +(2n-1) . 反码:-(2n-
13、1) +(2n-1) . 补码: -2n +(2n-1) .,例4. 假设由S,E,M三个域组成的一个32位二进制字所表示的IEEE754浮点数x,真值表示为:(1)s(1.M)2E127 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少? 解:阶码表示范围,用移码表示: 000 0111 1000 1001 111,-128 -1 0 +1 +127 最小负数 最大负数 最小正数 最大正数,尾数表示 -1.111 -1.000 1.000 1.111,-(1+(1-2-23) -1.0 0 +1.0 +(1+(1-2-23) 最小负数 最大负数 最小正数 最大正数 最小负数
14、: -(1+(1-2-23) 2127 最大负数: -1.0 2-128 最小正数: 1.0 2-128 最大正数:+(1+(1-2-23) 2127,第二章:运算方法和运算器 第一节:数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法,一. 字符 人机交换除了数据之外,还有英文字母、标点符号,十进制数等。目前国际上普遍采用一种字符系统ASCII码。它用7位二进制码表示一个字符。 二. 字符串 字符串是指连续的一串字符。 存放在主存中连续的多个字节,每个字节存一个字符。既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低
15、位字节的次序顺序存放字符串内容。,第二章:运算方法和运算器 第一节:数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法,一. 汉字输入编码 数字编码常用的是国际区位码,用数字串代表一个汉字输入,6763个两级汉字分为94个区,每个区分94位,区码和位码各两位十进制数字。因此输入一个汉字需按键四次。 拼音以汉语拼音为基础的输入方法。 字形编码用汉字的形状来进行的编码。五笔字型编码是最有影响的一种字形编码方法。 二. 汉字内码 用于汉字信息的存储、交换、检索等操作的机内码,一般采用两个字节表示。汉字机内码中两个字节
16、的最高位均规定为“1”。英文字符的机内码是七位的ASCII码,用一个字节表示时,最高位为“0”。,三. 汉字字模 字模码是用点阵表示的汉字字型代码,它是汉字的输出形式。简易型汉字为1616点阵,提高型汉字为2424点阵、3232点阵。 汉字库由字模点阵组成,存储了每个汉字点阵代码。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。,第二章:运算方法和运算器 第一节:数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码,元件故障噪声干扰等各种因素常常导致计算机在处理信息过程中出现错误。为
17、了防止错误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。通常的方法是,在每个字上添加一些校验位,用来确定字中出现错误的位置。 最简单且应用广泛的检错码是采用一位校验位的奇校验或偶校验。 该编码两部分组成: 1.信息位:位数不限的二进制编码; 2.奇偶校验位:1位;,校验方法: 1.奇校验:信息位和校验位中“1”的总个数为奇数个; 2.偶校验:信息位和校验位总“1”的总个数为偶数个;,设(01n1)是一个n位字,则奇校验位定义为 C01n1 (2.15) 式中代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。 同理,偶校验位定义为 C01n1 (2.16) 即中包含偶数
18、个1时,才使C0。,假设一个字从部件 A 传送到部件 B。在源点 A,校验位C可用上面公式算出来,并合在一起将(01n1C)送到B。假设在B点真正接收到的是(01n1C ),然后计算 F01 n1C 若F1,意味着收到的信息有错,若F0,表明字传送正确。奇偶校验可提供单个错误检测,但无法检测多个错误,更无法识别错误信息的位置。,第二章:运算方法和运算器 第二节:定点加法、减法运算,2.2.1 补码加法,负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。 补码加法的公式是: x补+ y补= x+y补 (mod 2) (2.17
19、),例1 x=0.1011,y=-0.0101,求x+y x补=0.1011, y补=1.1011 x补 0.1011 + y补 1.1011 - x+y补 1 0.0110 x+y=+0.0110,例2 x=-1001,y=-0101,求x+y x补=10111, y补=11011 x补 10111 + y补 11011 - x+y补 1 10010 x+y=-1101 特点: 符号位要作为数的一部分一起参加运算; 定点小数要在模2的意义下相加,定点整数要在模2n+1意义下相加;,第二章:运算方法和运算器 第二节:定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法,负数的减法运算
20、也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。 数用补码表示时,减法运算的公式为 x-y补= x+(-y)补= x补+-y补 (2.18),例3 x1=-0.1110, x2=+0.1101, 求x1补,-x1补,x2补,-x2补, x1- x2; x1补=1.0010, -x1补=0.1110 x2补=0.1101 -x2补=1.0011 x1补 1.0010 +-x2补 1.0011 - x1-x2补 1 0.0101 x1-x2=0.0101,例4 设机器字长为8位,A=+15=+0001111B, B=
21、+24=+0011000B,求A-B A补=00001111, B补=00011000 -B补=11101000 A补 00001111 +-B补 11101000 - A-B补 11110111 A-B=-0001001=-9,第二章:运算方法和运算器 第二节:定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检测方法,在定点小数机器中,数的表示范围为|1。在运算过程中如出现大于1的现象,称为溢出,正常情况下溢出是不允许的。 正常补码加法运算时,连同符号一起参加运算,有两种情况会产生溢出。 0.1011 1.0011 + 0.1000 + 1.0101 -
22、 - 1.0011 0.1000 两个正数相加的结果 两个负数相加的结果 成为负数,这显然是 成为正数,这同样是 错误的 错误的,之所以发生错误,是因为运算结果产生了溢出。两个正数相加,结果大于机器所能表示的最大正数,称为上溢。而两个负数相加,结果小于机器所能表示的最小负数,称为下溢。 为了判断“溢出”是否发生,可采用两种检测的方法。第一种方法是采用双符号位法,这称为“变形补码”或“模4补码”。,对每个操作数都采用两个符号位,即变形补码 正数:0 0 表示 负数:1 1 表示 第一符号位 第二符号位 第一符号位 第二符号位 特点: 两个符号位都看作数码一样参加运算; 两数进行以4为模加法,即最
23、高符号位上产生的进位要丢掉; 两数相加后,结果的符号位出现“01”或“10”两种组合时,表示溢出;,例5 x=+0.1010,y=+0.1101,求x+y x补=00.1010, y补=00.1101 x补 00.1010 + y补 00.1101 - x+y补 01.0111 两个符号位出现“01”,表示已溢出,即结果大于+1,称为正溢出。,例6 x=-0.1100,y=-0.1000,求x+y x补=11.0100, y补=11.1000 x补 11.0100 + y补 11.1000 - x+y补 10.1100 两个符号位出现“10”,表示结果大于-1,称为负溢出。,由此可以得出如下结
24、论: 1. 当以模4补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑表达式为 VSf1Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。 2. 模4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。,第二种溢出检测方法是采用单符号位法。当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。故溢出逻辑表达式为VCn-1Cn,其中Cn-1为符号位产生的进位,Cn为最高有效位产生的进位。此逻辑表达式也可用异或门实现。 在定点机中当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出,并进行中
25、断处理。,第二章:运算方法和运算器 第二节:定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检测方法 2.2.4 基本的二进制加法/减法器,两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1。 下面我们看表2.2。,表2.2中列出一位全加器进行加法运算的输入输出真值表。,根据表2.2所示的真值表,三个输入端和两个输出端可得出如下逻辑方程: SiAiBiCi C i1AiBiBiCiCiAi (2.23) 按此表达式组成的一位全加器示意图2.2(a)。,从图2.2(a)看到Si的时间延迟为6T(每级异或门延迟3T),
26、Ci1的时间延迟为5T(单个门1T)。,补码运算的二进制加法/减法器的逻辑结构图2.2(b),由图看到,n个1位的全加器(FA)可级联成一个n位的进位加减器。M为方式控制输入线。,现在我们计算一个n位的行波进位加法器的时间延迟。假如采用图2.2(a)所示的一位全加器并考虑溢出检测,那么n位行波进位加法器的延迟时间ta为 tan2T9T(2n9)T (2.22) 9T为最低位上的两极“异或”门再加上溢出“异或”门的总时间,2T为每级进位链的延迟时间。,当不考虑溢出检测时,有 ta(n-1)2T6T(2.23) ta意味着加法器的输入端输入加数和被加数后,在最坏情况下加法器输出端得到稳定的求和输出
27、所需的最长时间。显然这个时间越小越好。注意,加数、被加数、进位与和数都是用电平来表示的,因此,所谓稳定的求和输出,就是指稳定的电平输出。,第二章:运算方法和运算器 第二节:定点加法、减法运算,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检测方法 2.2.4 基本的二进制加法/减法器 2.2.5 十进制加法器,在BCD码中,用四位二进制数来表示一个十进制数。但机器不能直接进行十进制加法,如何实现十进制加法? 一. 十进制加法器设计思想: 十进制加法器可由BCD码(二十进制码)来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成
28、所要求的十进制格式。,二. 校正思想 在十进制运算时,当相加二数之和大于9时,对和数进行加6修正。 9+6=15 1001 + 0110 - 1111 9 校正 + 0110 加6修正 - 1 0101,三. 实现线路 n位BCD码行波式进位加法器的一般结构如图2.3(a)所示,它由n级组成,每一级将一对4位的BCD数字相加,并通过一位进位线与其相邻级连接。而每一位十进制数字的BCD加法器单元的逻辑结构示于图2.3(b)。 下面看图2.3(a), 2.3(b) 。,Ci+1,第一次近似求值时,看成4位二进制加法器来执行,得到 Si ,Ci1 然后根据得到的二进制和是否满足三个条件,即 Ci11
29、 Si =1010,1011 Si =1100,1101,1110,1111 来决定加6修正。 n位BCD码行波式进位加法器的一般结构如图2.3(a)所示,它由n级组成,每一级将一对4位的BCD数字相加,并通过一位进位线与其相邻级连接。,在图2.3(b)中,四位行波式进位的二进制加法器计算出和Si,然后Si经过第二级二进制加法器加上0或6,则产生最终结果Si。,第二章:运算方法和运算器 第三节 定点乘法运算,2.3.1 原码并行乘法,用原码实现乘法运算是十分方便的 一. 人工算法与机器算法的同异性 在定点计算机中,两个原码表示的数相乘的运算规则是: 1.乘积的符号位由原码符号位按异或运算结果决
30、定。 2.乘积的数值部分是两数绝对值相乘之积。 下面举例说明,例:x=0.1101, y=0.1011 习惯方法求其乘积,其过程如下: 0.1 1 0 1 0.1 0 1 1 - 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 - 0. 1 0 0 0 1 1 1 1,1)根据乘数1或0来决定是否加被乘数; 2)判断从乘数最低位求起,逐位变高,相加时部分积右移一位一起并加; 3)两数各n位,乘积为2n位;,人们习惯的算法对机器不完全适用,早期计算机中,为了简化硬件结构,采用串行1位乘法方案,即多次执行“加法移位”操作来实现。如下:,从本例可看到: 1. 原码一位
31、乘法,实际上是逐位判乘数位,根据乘数是1还是0来决定是否实现部分积+被乘数,然后右移一位。乘数n位,则进行n次。 2. 当相乘两数各为n位时,乘积为2n。,实现硬件线路:,乘法采用多次“加法移位”操作来实现,虽然不需要很多器件,然而串行方法毕竟太慢,不能满足科学技术对高速乘法提出的要求。 自从大规模集成电路问世以来,高速的单元阵列乘法器应运而生,下面介绍并行乘法器。,二.不带符号的阵列乘法器 设有两个不带符号的二进制整数:,它们的数值分别为a和b,即:,乘积P的数值为:,实现这个乘法过程所需要的操作和人们习惯非常类似:,实施逻辑图:,图2.4 55位不带符号的阵列乘法器逻辑 (注:图中的m=n
32、=5),被加数产生部件需要25个“与门”, mn=55=25构成:a0b0, a1b0,., a4b4共25项。 阵列乘法器实现这些与项加法由全加器构成,采用m(n-1)=54=20个全加器。 它是被加数求和部件。 如图2.5 5位5位不带符号的阵列乘法器逻辑电路图,该乘法器的总的乘法时间可以估算如下: Ta:“与门”的传输延迟时间,Ta=2T(用二级 “与非”逻辑实现与门); Tf:全加器(FA)的进位传输延迟时间, Tf=2T; tm:55位不带符号的阵列乘法器总的乘法时 间: tm= Ta+(n-1)6T+(n-1)Tf=2T+(n-1)6T+(n-1)2T 全加器延迟时间 =(8n-6
33、)T=34T,三.带符号的阵列乘法器 (1)对2求补器电路: 计算机求补还有一种方法: 如x=-10110 x原=1 101 10 x补=1 010 10 不变 符号位另外考虑 全部按位取反 计算从后面开始是0不变,碰到第1个1不变,第1个1以后取反。 一个具有使能控制的二进制对2求补器电路如图2.6;,其逻辑表达式如下: C10, CiaiCi1 ai*aiECi1,0in 在对2求补时,要采用按位扫描技术来执行所需要的求补操作。令Aana1a0是给定的(n1)为带符号的数,要求确定它的补码形式。进行求补的方法就是从数的最右端a0开始,由右向左,直到找出第一个“1”,例如ai1, 0in。这
34、样,ai以右的每一个输入位包括ai自己都保持不变,而ai以左的每一个输入位都求反,即1变0,0变1。最右端的起始链式输入C1必须永远置成“0”。当控制信号线E为“1”时,启动对2求补的操作。当控制信号线E为“0”时,输出将和输入相等。显然,我们可以利用符号位来作为控制信号。,例如:在一个4位的对2求补器中,如果输入数为1010,那么输出数应是0110,其中从右算起的第2位,就是所遇到的第一个“1”的位置。用这种对2求补器来转换一个(n1)为带符号的数,所需的总时间延迟为 tTCn2T5T(2n5)T(2.28) 或门 “与门”“异或门”,(2)带符号求补的阵列乘法器 (n1)(n1)位带求补器
35、的阵列乘法器逻辑图2.7:,通常,把包括这些求补级的乘法器又称为符号求补的阵列乘法器。在这种逻辑结构中,共使用三个求补器。其中两个算前求补器的作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。而算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。,设A=anan-1a1a0和B=bnbn-1b1b0均为用定点表示的(n1)位带符号整数。在必要的求补操作以后,A和B的码值输送给nn位不带符号的阵列乘法器,并由此产生2n位乘积: ABPp2n1p1p0 p2nanbn 其中P2n为符号位。,上图所示的带求补级的阵列乘法器既适用于原码乘法
36、,也适用于间接的补码乘法。不过在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而间接的补码阵列乘法所需要增加的硬件较多。为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加1倍。,例17 设15,13,用带求补器的原码阵列乘法器求出乘积? 解: 设最高位为符号位,则输入数据为原码 原 01111 原 11101 因符号位单独考虑,算前求补器输出后 |1111,|1101,算后求补级输出为11000011,加上乘积符号位1,则原码乘积值为111000011。 换算成二进制数真值是 ( 11000011)2=(-195)10 十进制数乘法验证:15(13)-195。,第
37、二章:运算方法和运算器 第四节 定点除法运算,2.4.1 原码除法运算原理,两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有n位定点小数(定点整数也同样适用): 被除数,其原码为: 原f .n110 除数,其原码为: 原f .n110 则有商q/,其原码为: q原(ff)+(0.n110/0.n110),商的符号运算qfff与原码乘法一样,用模2求和得到。商的数值部分的运算,实质上是两个正数求商的运算。根据我们所熟知的十进制除法运算方法,很容易得到二进制数的除法运算方法,所不同的只是在二进制中,商的每一位不是“1”就是“0”,其运算法则更简
38、单一些。,下面仅讨论数值部分的运算。设被除数0.1001,除数0.1011,模仿十进制除法运算,以手算方法求的过程如下: 0.1 1 0 1商q0.1 0 1 1 0.1 0 0 1 0(r0)被除数小于除数,商00.0 1 0 1 121除数右移1位,减除数,商10.0 0 1 1 1 0r1得余数r10.0 0 1 0 1 122除数右移1位,减除数,商10.0 0 0 0 1 1 0r2得余数r20.0 0 0 1 0 1 123除数右移1位,不减除数,商00.0 0 0 0 1 1 0 0r3得余数r30.0 0 0 0 1 0 1 124除数右移1位,减除数,商10.0 0 0 0
39、0 0 0 1r4得余数r4 得的商q0.1101,余数为: r0.00000001。,除法过程是通过逐次减法进行的,把上次减得的余数低位添“0”,再减去除数,商的每位数字是根据每次添“0”后的余数和除数大小来决定。 计算机实现除法有两种方法:恢复余数法和不恢复余数法(加减交替法)。,1.恢复余数法: 运算规则: 1)第一次,被除数减去除数,余数为正,表示溢出,停机;余数 为负,表示不溢出,然后恢复原来值(加回除数),左移1位,商记“0”。 2)在运算时,余数为正,说明够减,商上“1”;余数为负,说明不够减,商上“0”,加上除数。然后将余数左移一位,再减去除数。 3)重复2,一直到N位商(若N位除N位时),计算结束。,2.不恢复余数法(加减交替法): 运算规则: 当余数为正,商取“1”,余数和商同时左移1位,减除数; 当余数为负,商取“0”,余数和商同时左移1位,加除数;,可以证明恢复余数法和加减交替法是同一件事,(设r为余数,x为除数): 当余数为正:恢复余数法+r2-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济宁市兖州区2025-2026学年高一下学期期中考试英语试卷
- 2026年围棋入门基础知识教学
- 2026年中国石油加油站店长竞聘笔试模拟题
- 2026年高中生物实验操作要点总结
- 2026年叙事疗法实操考核题库
- 第1节 多种证据表明生物具有共同的祖先说课稿2025学年高中生物沪科版2020必修2 遗传与进化-沪科版2020
- 本册综合说课稿-2025-2026学年初中音乐八年级下册沪教版
- 小学阅读2025年习惯养成主题说课稿
- 2026年人力资源管理师笔试重点预测
- 初中2025年传统文化语文戏剧说课稿
- 2025年湖南省长沙市宁乡市部分校小升初数学试卷(含解析)
- 2026年长沙民政职业技术学院单招职业技能考试题库附答案详解(典型题)
- 2025年铁路局会计招聘笔试及答案
- 词语3 文言文-辨析“重点词语”的异同-高考语文二轮专题复习
- 2026年客服管理岗面试全攻略及参考答案
- 2025年初级农产品食品检验员试题及答案
- 热成像技术在感染性疾病快速筛查中的初步探索
- GB/T 6274-2025肥料、土壤调理剂和有益物质术语
- 雨课堂学堂在线学堂云《环境工程概论(沈建)》单元测试考核答案
- 《思想政治教育方法论》课程讲义
- 水利工程专业介绍
评论
0/150
提交评论