除法 补码加减交替法
补码加减交替法计算x÷y
补码加减交替法计算x÷y
补码加减交替法计算x÷y是目前广泛应用的一种数据运算方法,它的应用可以极大地提高计算机的数据处理能力,拓展出更多的可能性。
首先,补码加减交替法计算x÷y,需要将除数y映射到一个负数上,以实现有效的数据运算。
在计算机的运用中,y的负补码在内存中占据四个字节空间,将发生的状态记录得以保存。
在运算过程中,由于要求对负数y执行减法操作,故要与X对应,按照比特地址来指定。
其后,由于X和y的补码求和具有系统性,因此可以按照一定的步骤循环进行计算。
首先确定除数的补码的原码,在上述条件内,由此可求得Y及其补码,建立模型,两个补码加减取得结果。
最后通过取余、查表及逐比特运算等方法,获得结果值,完成补码加减法计算X÷Y的过程。
补码加减交替法计算x÷y具有视觉上更直观、操控性更强、效率更高等一系列优点,在解决我国民生、经济发展中的实际应用中也有重要的作用,充分发挥了它的强大优势与作用。
同时,它也将大大提高计算机的处理速度、运行效率,满足人们的不断增长的需求。
总之,补码加减交替法计算x÷y的应用不仅在计算机语言技术中具有重要的意义,在实际的政务与民生领域中,也拥有重要的作用。
因此,未来补码加减交替法计算x÷y将会有更广阔的发展空间,为实现经济发展,提高民生发挥着重大作用。
补码加减法运算
[-y]补=0.0110
[x]补 + [-y]补
[x-y]补
计算机组成原理
1.0 0 1 1 0.0 1 1 0 1.1 0 0 1
∴x -y = - 0.0111
6
溢出及与检测方法
1.概念
在定点小数机器中,数的表示范围为|x|<1。在运算过程中如出现大于1
的现象,称为 “溢出”。
下溢
上溢
机器定点小数表示
T通常采用一个 “与非”门或一 个“或非”门的 时间延迟来作为 度量单位。
20
(1)对一位全加器(FA)来说,Si的时间延迟为6T(每级异或门延迟3T); Ci+1的时间延迟为5T。
Ci+1
Si
≥1
=1
&
&
=1
计算机组成原理
Ci
Ai Bi
21
(2)n位行波进位加法器的延迟时间ta为: 考虑溢出检测时,有: ta=n·2T+9T=(2n+9)T
发生溢出的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
计算机组成原理
7
例:x=+0.1011, y=+0.1001, 求x+y。
解:
[x]补=0.1011
[y]补=0.1001
计算机组成原理
补码加减法运算
2020年5月26日
计算机组成原理
1
补码加减法运算
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减
法, |大| - |小|,结果符号与|大|相同。 减法规则:
计算机组成基本知识第六章答案解析
1. 写出下列各数的原码、反码、补码、移码(用8位二进制表示),其中MSB是最高位(符号位),LSB是最低位。
如果是小数,则小数点在MSB之后;如果是整数,则小数点在LSB之后。
(1)-59/64 (2)27/128 (3)-127/128 (4)用小数表示-1(5)用整数表示-1 (6)-127 (7)35 (8)-1282. 设[x]补=x0.x1x2x3x4,其中x i取0或1,若要使x>-0.5,则x0、x1、x2、x3、x4的取值应满足什么条件?3. 若32位定点小数的最高位为符号位,用补码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为;若32位定点整数的最高位为符号位,用原码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为。
4. 若机器字长为32位,在浮点数据表示时阶符占1位,阶码值占7位,数符占1位,尾数值占23位,阶码用移码表示,尾数用原码表示,则该浮点数格式所能表示的最大正数为,最小正数为,最大负数为,最小负数为。
5. 某机浮点数字长为18位,格式如图2.35所示,已知阶码(含阶符)用补码表示,尾数(含数符)用原码表示。
(1)将(-1027)10表示成规格化浮点数;(2)浮点数(0EF43)16是否是规格化浮点数?它所表示的真值是多少?图2.35 浮点数的表示格式6. 有一个字长为32位的浮点数,格式如图2.36所示,已知数符占1位;阶码占8位,用移码表示;尾数值占23位,尾数用补码表示。
图2.36 浮点数的表示格式请写出:(1)所能表示的最大正数;(2)所能表示的最小负数;(3)规格化数所能表示的数的范围。
7. 若浮点数x的IEEE754标准的32位存储格式为(8FEFC000)16,求其浮点数的十进制数值。
8. 将数(-7.28125)10转换成IEEE754标准的32位浮点数的二进制存储格式。
9. 已知x=-0.x1x2…x n,求证:[x]补=+0.00…01。
计算机专业基础综合计算机组成原理(数据的表示和运算)历年真题试卷汇编1
计算机专业基础综合计算机组成原理(数据的表示和运算)历年真题试卷汇编1(总分:84.00,做题时间:90分钟)一、单项选择题(总题数:35,分数:70.00)1.定点补码加减法运算中,当运算结果出现____时,表示运算结果负溢出。
【华中科技大学2002年】A.符号位为00B.符号位为01C.符号位为10 √D.符号位为11考查双符号位时溢出的判别。
两个符号位不同时,表示溢出,此时最高位符号位代表真实符号。
2.采用变形补码判溢出,当发生正溢出时,其两位符号位为____。
【国防科技大学2002年】A.0B.1 √C.10D.11考查双符号位时溢出的判别。
原理同上题。
3.在定点运算器中,无论采用双符号位还是单符号位,必须有____。
【上海大学2001年】A.译码电路,它一般用与非门来实现B.编码电路,它一般用或非门来实现C.溢出判断电路,它一般用异或门来实现√D.移位电路,它一般用与或非门来实现考查溢出判别所需硬件配置。
三种溢出判别方法,均必须有溢出判别电路,可用异或门来实现。
4.在原码不恢复余数除法(又称原码加减交替法)的算法中,____。
【哈尔滨工程大学2004年】A.每步操作后,若不够减,则需恢复余数B.若为负商,则恢复余数C.整个算法过程中,从不恢复余数√D.仅当最后一步不够减时,才恢复一次余数考查原码不恢复余数除法。
5.在补码一位乘中,若判断位Y n Y n+1 +1=10,则应执行的操作是____。
【电予科技大学1996年】【上海大学1998年】A.原部分积加[X] 补,然后右移一位√B.原部分积加[X] 补,然后右移一位C.原部分积加[X] 补,然后左移一位D.原部分积加[X] 补,然后左移一位考查补码一位乘。
6.实现N位(不包括符号位)补码一位乘时,乘积为____位。
【西安电子科技大学2007年】A.NB.N十1C.2N √D.2N+1考查补码一位乘。
补码一位乘法运算过程中一共向右移位N次,加卜原先的N位,一共是2N位数值位。
补码运算加减乘除原理
首先我们来看为什么要使用补码运算法:因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.于是人们开始探索将符号位参与运算, 并且只保留加法的方法. 首先来看原码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.为了解决原码做减法的问题, 出现了反码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反= [1111 1111]反 = [1000 0000]原 = -0发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上.虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.于是补码的出现, 解决了0的符号以及两个编码的问题:1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补= [0000 0000]补=[0000 0000]原这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:接下来我们来看补码运算原理:在计算机里,如果我们要计算5-3的值,我们既可以用5减去3,也可以用5加上13。
除法_补码加减交替法
则
x y
= – 0.1101
1 末位恒置“1”
2
– 重复步骤③ ,包括符号位在内,共做n+1步。
• 如果对商的精度没有特殊要求,一般可采用“末位恒置 1”法,此法操作简单,易于实现,且最大误差仅为2-n 。
2020年3月9日星期一
1
例8.设 x = – 0.1011,y = 0.1101,求 [ xy并]补还原真值。
被除数(余数)
1.0101 0.1101 0.0010 0.0100 1.0011 1.0111 0.1110 0.1101 1.1011 1.0110 0.1101 0.0011 0.0110
2020年3月9日星期一
商
0.0000
1 1
10 10
100 100
1001 10011
说明
[x]补 = 1.0101
异号做加法 同号上“1”
[y]补 = 0.1101 [–y]补 = 1.0011
1
+[–y]补 异号上“0”
1
+[y]补 异号上“0”
1
∴
[
x y
]补=
1.0011
+[y]补 同号上“1”
补码加减交替法的运算规则
• 运算规则
– 符号位参加运算,除数和被除数均用双符号位补码表示;
– 第一步的运算
• 被除数与除数同号,被除数减去除数; • 被除数与除数异号,被除数加上除数;
例题
– 后续步骤的运算
• 余数与除数同号,商上1,余数左移一位减去除数;
• 余数与除数异号,商上0,余数左移一位加上除数。
计算机组成原理课前题
计算机组成原理课前题第⼀章例题分析1.⼀个完整的计算机系统应该包括()两⼤部分。
A.主机和外设B.硬件系统和操作系统C.硬件系统和软件系统D.硬件系统和系统软件参考答案:C简要分析:选项A:现代计算机通常把运算器和控制器合起来做在⼀个芯⽚上,称为中央处理器(CPU)。
然后把CPU和内存储器合起来称为主机。
主机和外设构成硬件系统。
所以选项A不全⾯。
选项B:⼀个完整的计算机系统应该包括硬件系统和软件系统两部分。
软件系统分为系统软件和应⽤软件两⼤类。
系统软件包括操作系统、计算机语⾔处理程序(各种程序翻译软件,包括编译程序、解释程序、汇编程序)、服务性程序、数据库管理系统和⽹络软件等。
操作系统只是系统软件的⼀种,所以不全⾯。
选项D:系统软件只是软件系统中的⼀类软件,因⽽,也不全⾯。
2.下列是有关程序、指令和数据关系的叙述,其中错误的是()。
A.⼀个程序由若⼲条指令和所处理的数据组成B.指令和数据形式上没有差别,都是⼀串0/1序列C.指令和数据不能放在同⼀个存储器中,必须分别存放在指令存储器和数据存储器中D.启动程序前指令和数据都存放在外存中,启动后才被装⼊内存参考答案:选项C简要分析:选项A:在计算机上完成的所有任务都必须先编好程序,通过计算机执⾏程序来完成。
所以执⾏程序的过程就是周⽽复始执⾏指令的过程。
⼀个程序由⼀条条指令以及指令所处理的数据组成。
指令规定程序的动作和步骤,数据是动作作⽤的对象。
选项B:指令和数据在计算机内部都是⽤⼆进制表⽰的,因⽽都是0、1序列,在形式上没有差别。
选项C和D:程序编好后,先放到外存(如,磁盘)上保存。
当需要执⾏程序时,通过操作系统提供的⼈-机接⼝(在命令⾏符下输⼊命令,或⿏标双击等)启动程序,程序被启动后,程序中的指令和数据被操作系统装⼊主存,⼀般是装⼊到同⼀个主存储器(DRAM)中,⽽不区分是数据存储器还是指令存储器。
CPU通过指令执⾏的不同阶段来区分取出的是数据还是指令,⽽不是靠分开存放数据和指令来区分的。
计算机组成原理第3章 运算器和运算方法
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
计算机组成原理期末复习资料汇总
计算机组成原理?期末复习资料汇总一、名词解释微程序:是指能实现一条机器指令功能的微指令序列。
微指令:在机器的一个CPU周期,一组实现一定操作功能的微命令的组合。
微操作:执行部件在微命令的控制下所进展的操作。
加减交替法:除法运算处理中对恢复余数法来说,当余数为正时,商“1〞,余数左移一位,减除数;当余数为负时,商“0〞,余数左移一位,加除数。
有效地址:EA是一16位无符号数,表示操作数所在单元到段首的距离即逻辑地址的偏移地址.形式地址:指令中地址码字段给出的地址,对形式地址的进一步计算可以得到操作数的实际地址。
相容性微操作:在同一CPU周期中,可以并行执行的微操作。
相斥性微操作:在同一CPU周期中,不可以并行执行的微操作。
PLA:Programmable Logic Arrays,可编程逻辑阵列。
PAL:Programmable Array Logic,可编程阵列逻辑。
GAL:Generic Array Logic,通用阵列逻辑。
CPU:Central Processing Unit,中央处理器。
一块超大规模的集成电路,是一台计算机的运算核心和控制核心。
RISC:Reduced Instruction Set puter,精简指令系统计算机。
CISC:ple* Instruction Set puter,复杂指令系统计算机。
ALU:Arithmetic Logic Unit,算术逻辑单元。
CPU执行单元,用来完成算术逻辑运算。
二、选择题1.没有外存储器的计算机监控程序可以存放在(B)。
A.RAM B.ROM C.RAM和ROMD.CPU2.完整的计算机系统应包括〔D 〕。
A.运算器.存储器.控制器B.外部设备和主机C.主机和使用程序D.配套的硬件设备和软件系统3.在机器数〔BC 〕中,零的表示形式是唯一的。
A.原码B.补码C.移码D.反码4.在定点二进制运算器中,减法运算一般通过〔D 〕来实现。
A.原码运算的二进制减法器B.补码运算的二进制减法器C.原码运算的十进制加法器D.补码运算的二进制加法器5.*存放器中的值有时是地址,因此只有计算机的〔C〕才能识别它。
定点除法
被除数x/余数r
商数q
0 0.1 0 0 1
1
+[-y]补 1 1.0 1 0 1 1 1.1 1 1 0
1 1.1 1 0 0
10
+[y]补 0 0.1 0 1 1 0 0.0 1 1 1
0 0.1 1 1 0
101
+[-y]补 1 1.0 1 0 1
0 0.0 0 1 1
0 0.0 1 1 0
设被除数x=0.1001,除数y=0.1011,模仿十进制除法运算, 以手算方法求x÷y的过程如下:
0.1 1 0 1
商q
0.1 0 1 1 ∕ 0.1 0 0 1 0 -0.0 1 0 1 1 0.0 0 1 1 1 0 -0.0 0 1 0 1 1 0.0 0 0 0 1 1 0 -0.0 0 0 1 0 1 1 0.0 0 0 0 1 1 0 0 -0.0 0 0 0 1 0 1 1
(2.40)
当 P=0时,方程式(2.40)就是我们熟悉的一位全加器(FA)
的公式:
Si=Ai⊕ Bi⊕ Ci
Ci+1=AiBi+BiCi+AiCi
当 P=1时。则得求差公式:
Si=Ai⊕ Bi⊕ Ci
Ci+1=AiBi +BiCi + AiCi (2.41) 其中 Bi=Bi ⊕ 1.
在减法情况下,输入Ci称为借位输入,而Ci+1称为借位输出. 为说明CAS单元的实际内部电路实现,将方程式(2.40)加以变换,
0.11
+[-y]补 1 1.0 1 0 1
1 1.1 0 1 1
1 1. 0 1 1 0
0.110
+[y]补 0 0.1 0 1 1
计算机组成原理习题 第二章
第二章一.填空题1. 设X=-69,n=8(含符号位),则X的原码为,X的补码为,X 的移码为。
2. 设机器字长为8位,X=78,Y=-97,则[X]原= B, [X]补= B[Y]原= B, [Y]补= B3. 阶码8位(最左一位为符号位),用移码表示,尾数为24位(最左一位为符号位),用规格化补码表示,则它能表示的最大正数的阶码为,尾数为;绝对值最小的负数的阶码为,尾数为。
(以上回答用二进制书写)4. 8位补码定点整数所能表示的绝对值最大的负数(即最负的数)的值为。
5. 补码定点小数所能表示的绝对值最大负数的值为。
6. 当浮点数的尾数为补码时,其为规格化数应满足的条件为。
7. 影响并行加法器速度的关键因素是。
8. 向左规格化的规则为:尾数,阶码。
9. 运算器的基本功能是实现和运算。
10 在整数定点机中,机器数位补码,字长8位(含2位符号位),则所能表示的十进制数范围为至,前者的补码形式为,后者的补码形式为。
11 机器数为补码,字长16位(含1位符号位),用十六进制写出对应于整数定点机的最大正数补码是,最小负数补码是。
12 机器数为补码,字长16位(含1位符号位),用十六进制写出对应于小数定点机的最大正数补码是,最小负数补码是。
13 在整数定点机中,采用一位符号位,若寄存器内容为1 000 0000,当它分别表示为原码、补码、反码及无符号数时,其对应的真值分别为、、、和。
(均用十进制表示)14 在小数定点机中,采用1位符号位,若寄存器内容为10000000,当它分别表示为原码、补码和反码时,其对应的真值分别为、和(均用十进制表示)15 机器数字长为八位(含一位符号位),当x=-128(十进制)时,其对应的二进制为,[x]原= ,[x]反= ,[x]补= ,[x]移= 。
16 机器数字长为八位(含一位符号位),当x=-127(十进制)时,其对应的二进制为,[x]原= ,[x]反= ,[x]补= ,[x]移= 。
补码加减法运算(计算机组成原理)
故: 1. 和为10~15时,加6校正; 2. 和数有进位时,加6校正。
计算机组成原理
25
1000
X+Y+C>10 调整
计算机组成原理
7
+
6
13
0111
+ 0110 1101
+ 0110 1 0011
(= D) (= 13)
24
和数(4位) 有进位 调整
28
0010 1000
+9
+ 0000 1001
37
0011 0001 (=31)
+ 0000 0110
0011 0111 (=37)
变形补码定义:
x
[x]补=
4+x
0 x<2 -2 x<0
(mod 4)
计算机组成原理
11
采用变形补码后数的表示: • 任何小于1的正数: 两个符号位都是“0”,即 00.x1x2...xn; • 任何大于-1的负数:两个符号位都是“1”,即 11.x1x2…xn
模4补码加法公式:[x]补+[ y]补=[x+y]补 (mod 4)
解:
。
[x]补=0.1011 [x]补
+ [y]补 [x+y]补
[y]补=0.1001 0. 1 0 1 1 0. 1 0 0 1 1. 0 1 0 0
两个正数相加的结果成为负数,这显然是错误的
例:x= -0.1101, y= -0.1011, 求x+y。
解:
[x]补=1.0011
[y]补=1.0101
1.一位全加器 加法运算:Ai + Bi + Ci = Si (Ci+1)
除法_补码加减交替法
• 运算规则
– 符号位参加运算,除数和被除数均用双符号位补码表示;
– 第一步的运算
• 被除数与除数同号,被除数减去除数; • 被除数与除数异号,被除数加上除数; Nhomakorabea例题
– 后续步骤的运算
• 余数与除数同号,商上1,余数左移一位减去除数;
• 余数与除数异号,商上0,余数左移一位加上除数。
2020年3月9日星期一
商
0.0000
1 1
10 10
100 100
1001 10011
说明
[x]补 = 1.0101
异号做加法 同号上“1”
[y]补 = 0.1101 [–y]补 = 1.0011
1
+[–y]补 异号上“0”
1
+[y]补 异号上“0”
1
∴
[
x y
]补=
1.0011
+[y]补 同号上“1”
则
x y
= – 0.1101
1 末位恒置“1”
2
– 重复步骤③ ,包括符号位在内,共做n+1步。
• 如果对商的精度没有特殊要求,一般可采用“末位恒置 1”法,此法操作简单,易于实现,且最大误差仅为2-n 。
2020年3月9日星期一
1
例8.设 x = – 0.1011,y = 0.1101,求 [ xy并]补还原真值。
被除数(余数)
1.0101 0.1101 0.0010 0.0100 1.0011 1.0111 0.1110 0.1101 1.1011 1.0110 0.1101 0.0011 0.0110
原码补码乘除法
令 yn+1 = 0
项
补码一位乘法运算的实现(比较法) 返回
补码一位乘公式:
[
Z
]补=
[X
×
Y]补
= =
[[XX]]补补××(i=n0-(yyi0++1 -i=n0yyii
× 2-i ) ) × 2-i
部分积递推公式:
[Z0]补= 0 [Z1]补= 2-1{ [Z0]补+ (yn+1 - yn) [X]补} (令 yn+1 = 0)
解决方案:
1. 改n输入数相加过程为两两 相加;
2. 改2n位相加过程为n位相加。
笔算乘法过程
原码一位乘运算
返回
基本公式:
设 被乘数 [X]原 = xf . x1 x2 … x n 乘 数 [Y]原 = yf . y1 y2 … y n 则
[X × Y]原 =( xf⊕ yf ). ( X* × Y* )
其中, X* 和Y*分别是X和Y的绝对值
原码一位乘运算
例如: X = 0.1101
[X]原= 0.1101 X* = 0.1101
Y = - 0.1011
[Y]原 = 1.1011 Y* = 0.1011
0. 1 1 0 1 × 0. 1 0 1 1
1101 1101 0000 + 1101 0.10001111 手工运算过程
= [ X ]补× (0 .y1 y2 …yn)
(mod 2)
(mod 2)
补码一位乘法运算算法推导 返回
(比较法)
[X × Y]补 = [X]补 × Y
[Y]补
n
Y=(-y0+i=1 y i * 2-i )
分解为单项形式
计算机组成原理第七讲(除法-原码恢复余数法)(科大罗克露)
计算机组成原理第七讲(除法-原码恢复余数法)(科大罗克露)定点除法运算:若干余数与除数加减,移位。
例:0.10110 ÷0.11111--------->商为:0.10110 余数为: 0.10110 x 2-5实现除法关键:比较余数,除数绝对值大小,以决定上商。
恢复余数。
1.原码恢复余数法算法:比较两数大小可用减法试探。
2 X 余数-除数=新余数(为正,够减,商为1;为负,不够减,商为0,恢复原余数) 实例:X= -0.10110 Y=0.11111 求X/Y,给出商数Q和余数R。
设置寄存器:A:被除数,余数B:除数C:商初值:A=|X|=00.10110;B=|Y|=00.11111;-B=11.00001; C=|Q|=0.00000分步运算过程:步骤判断条件操作A=00.10110(看作余数r0)C=0.00000(Cn=0最末位)符号位SA <----- 01.01100A= 乘2r0(左移一位)A=01.011001 -B + 11.000010 r1 = 00.01101 (符号位为0,表示够减,商为1)C=0.00001--->Q12<------ 00.11010 A=乘2r1(左移一位) A=00.11010-B +11.000011 r2' = 11.11011 (符号位1,表示不够减,商为0)C=0.00010--->Q23. +B + 00.11111 (不够减,恢复余数)恢复余数r2 = 00.110104 <--------- 01.10100 A=乘2r2 (左移一位) A=00.11010-B +11.000010 r3 = 00.10101(符号位为0,表示够减,商为1) C=0.00101--->Q3 5. <----- 01.01010 A=乘2r3 (左移一位) A=01.01010-B + 11.000010 r4 = 00.01011 (符号位为0,表示够减,商为1) C=0.01011--->Q4 6 <----- 00.10110 A=乘2r4 (左移一位) A=00.10110-B + 11.000011 r5 = 11.10111 (符号位为1,表示不够减,商为0) C=0.10110--->Q5 7 +B00.11111恢复余数r6 = 00.10110Q=-0.10110R= 0.10110 x 2-5;(余数同被除数符号)X/Y = -0.10110 + 0.10110 x 2-5/0.11111结果X/Y就等于商Q加上余数R再除以除数Y;运算规则说明:1.A,B双符号位,X,Y绝对值,|X|小于|Y|。
定点数乘除运算及实现
[X •Y ]补 =0. 011110
所以:
1
实现补码一位乘法的乘法器的逻辑框图如图所示
2
补码两位乘法:是把补码的一位乘法的两个单步操作和并成一个操作。 即:
3
【 (Z i+2)补】=
4
2-2 {【 Z i补】+ (Yn+1 +Yn-2Y n-1) 】 · 【X 】补}
余数<0
商0即q0=0
+ ︱ y ︱
0. 1 1 0 1
——————————
0. 1 0 0 1
左移1位
1. 0 0 1 0
- ︱ Y ︱
1. 0 0 1 1
+[-| y| ]补
——————————
0. 0 1 0 1
余数>0
商1即q1=1
+[-| y| ]补
1. 0 0 1 1
——————————
0. 0 1 1 1
左移1位
0. 1 1 1 0
+[-| y| ]补
1. 0 0 1 1
———————————
0. 0 0 0 1
余数>0
商1即q4=1
所以:商:Q=-0.1011, 余数:R=+0.00012-4
对上述手算计算过程分析得:
(1) 每次都是由心算来比较余数和除数的大小,余数大时,商1; 余数小时,商0。第一次比较时,余数就是被除数。 (2) 每做一次减法,总是保持余数不动,而除数向右移一位。 (3)最后据符号位运算的结果给商以正确的符号
为适应机器运算,需要进行改进: (1) 用减法来比较余数和除数的大小 (2) 除数右移改为余数左移。 (3)定点除法运算必须要求被除数的高n位小于除数,否则益处
补码除法规则说明
补码除法(加减交替法)规则说明1. 商为正时,够减应商真值1,不够减时商真值0;商为负时,够减应商真值 -1,不够减时商真值0;2. 当[]B 补与[]A 补同号时,商Q 为正,Q 的真值与补码形式一致; 当[]B 补与[]A 补异号时,商Q 为负,Q 的真值与补码的关系除最后一位(恒为1)外,其余各位补码实际上是对应真值的反码。
3. 关于溢出,无论如何,第一为商只能是0。
假定第一位商的真值为q n -1',则余数[][][][]补补补-A q B A q B R n n '1'122--=⨯-=,若q n -1'取1(或-1)时,余数仍为真余数,则溢出。
也即:当Q 为正时,R=2[]B 补-1[]A 补=2[]B 补-[]A 补与B 同号溢出;当Q 为负时,R=2[]B 补-(-1)[]A 补=2[]B 补+[]A 补与B 同号溢出4. 当Q 为正时:* 若R 与[]A 补同号,表明R 是真余数,应商真值1,补码形式也是1;根据加减交替法,下一步为2R-[]1⨯A 补→R ,即R A R →-补][2。
* 若R 与[]A 补异号,表明R 是假余数,应商真值0,补码形式也是0;下一步为2R+[]1⨯A 补→R ,即R A R →+补][2。
5. 当Q 为负时:* 若R 与[]A 补同号,表明R 是假余数,应商真值-0,反码形式是1;根据加减交替法,下一步为 R A R →⨯-+补]1[2,即R A R →-补][2* 若R 与[]A 补异号,表明R 是真余数,应商真值-1,反码形式是0;下一步为R A R →⨯--补]1[2,即R A R →+补][26. 关于最后一位恒置1:由算法可知,最后一次减尝试可能出现够减和不够减两种情况,但不管够减和不够减,减操作已经完成,算法中并不管最后余数的恢复,所以,最后一位商的真值应为1(或-1),余数有可能是假余数。
分两种情况:* 若Q 为正,最后一位为1,与恒置1同。
(计算机组成原理)第4章 运算方法与运算器-fjw-2
Q的符号取反,得[Q]补=1.0011。
操作说明 [R0]补与[Y]补异号,上商0 左移一位 +[Y]补 [R1]补与[Y]补异号,上商0 左移一位 +[Y]补 [R2]补与[Y]补异号,上商0 左移一位 +[Y]补 [R3]补与[Y]补同号,上商1 左移一位,末位置1
18
二、补码除法及实现
❖(Ri)θ(Rj)→Rk:需要3步
▪ (Ri)→LA; ▪ (Rj)→LB; ▪ ALU运算,结果→Rk
缓冲器 ALU→IB
ALU
LA IB→LA
运算控制信号
C_OP
GR
IB→Ri
Ri→IB
LB IB→LB
IB
27
二、定点运算器的总线结构
▪单总线运算器的结构形 式2
❖(Ri)θ(Rj)→Rk:需要3步
▪ 内部总线:用于连接各个部件的信息通道。 ▪ 其他可选电路
25
一、定点运算器的组成
❖ 设计定点运算器,如何确定各部件的功能和组织方式 是关键,这取决于以下几个方面: ▪ 指令系统 ▪ 机器字长 ▪ 机器数及其运算原理 ▪ 体系结构
26
二、定点运算器的总线结构
❖1、单总线结构
▪ 单总线运算器的结构形 式1
④ 循环操作步骤③,共做n次,得到1位商符和(n-
1)位商的补码数值位,最末位采用恒置“1”法。
[X]补与[Y]补 同号 异号
商符 0 1
第一次操作 [Ri]补与[Y]补
上商 真值 补码
减法
同号(够减) 1
1
[X]补+[-Y]补 异号(不够减) 0
0
加法 同号(不够减) 0
1
移位除法运算(汇编)
移位除法运算(汇编)实现除法运算时,还应避免去数为0或被除数为0。
前者结果为无穷大,不能用机械的有限位数表示;后者结果老是0,这个除法操作等于白做,浪费了机械时间。
至于商的位数一般与操作数的位数相同。
原码除法中由于对余数的处置不同,又可分为恢复余数法和不恢复余数法(加减交替法)两种。
(1)恢复余数法。
恢复余数法的特点是:当余数为负时,需加上除数,将其恢复成原来的余数。
(然后再执行左移一名后减去除数的运算)由上所述,商值的肯定是通过比较被除数和除数的绝对值大小,即x*-y*实现的,而计算机内只设加法器,故需将x*-y*操作变成[x*]补+[-y*]补的操作。
例:已知:x=,y=,求:[x÷y]原解:由x*=,[x]原=y*=,[-y]补=,[y]原=商值的求解进程如下:被除数商说明(余数)+ +[-y*]补(减去除数)+ 0余数为负,上商0 恢复余数+[y*]补+ 0被恢复的被除数← 1位+[-y*]补(减去除数)余数为正,上商1← 1位+[-y*]补(减去除数)+ 0101+011余数为正,上商1← 1位+[-y*]补(减去除数)011+ 0110余数为负,上商0 恢复余数+[y*]补+ 0110被恢复的被除数← 1位+[-y*]补(减去除数)01101余数为正,上商1数)+ +[-y*]补(减除数)+ 0 0余数为负,上商0← 1位+[y*]补(加除数)+ 01 01余数为正,上商1← 1位+[-y*]补(减除数)+ 011 011余数为正,上商1← 1位+[-y*]补(减除数)+ 0110 01余数为负,上商0← 1位+[y*]补(加除数)1001101余数为正,上商10<|除数|≤|被除数|因为这样才能取得整数商。
通常在做整数除法前,先要对这个条件进行判断,若不知足上述条件,机械发出犯错信号,程序要从头设定比例因子。
上述讨论的小数除法完全适用于整数除法,只是整数除法的被除数位数可以是除数的两倍,且要求被除数的高M位要比除数(n位)小,不然即为溢出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 运算规则
– 符号位参加运算,除数和被除数均用双符号位补码表示; – 第一步的运算
• 被除数与除数同号,被除数减去除数; • 被除数与除数异号,被除数加上除数;
例
题
– 后续步骤的运算
• 余数与除数同号,商上1,余数左移一位减去除数; • 余数与除数异号,商上0,余数左移一位加上除数。
– 重复步骤③ ,包括符号位在内,共做n+1步。
• 如果对商的精度没有特殊要求,一般可采用“末位恒置 1”法,此法操作简单,易于实现,且最大误差仅为2-n 。
2012年11月30日星期五 1
x ]补 例8.设 x = – 0.1011,y = 0.1101,求 [ y并还原真值。
被除数(余数) 商 说 明
1
10 10 100 100 1001 10011
1
+[–y]补 异号上“0”
1
+[y]补
异号上“0”
1
+[y]补
同号上“1” 1 末位恒置“1”
x ∴ [ y ]补= 1.0011 x 则 y = – 0.1101
2
1.0101 0.1101 0.0010 0.0100 1.0011 1.0111 0.1110 0.1101 1.1011 1.0110 0.1101 0.0011 0.0110
2012年11月30日星期五
0.0000 1
异号做加法 同号上“1”
[x]补 = 1.0101 [y]补 = 0.1101 [–y]补 = 1.0011