本文共 2887 字,大约阅读时间需要 9 分钟。
补码加法
公式:[x+y]补=[x]补+[y]补 补码减法: 为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补 (证明) 为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)n位乘n位积可能为2n位.
乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端,机器一次只能进行两个数的相加,不能进行多个数据的加法。 手工计算中,乘数的每一位是0还是1都可直接看见,而在计算机中,采用放乘数的寄存器的每一位直接决定本次相加数是被乘数还是0是很不方便的,若采用该寄存器的最低一位来执行这种判断就简便了。计算机中执行乘法时,积的符号位由被乘数和乘数的符号位通过一个半加器(即异或门)实现。
数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移一位,得到新的部分积;当Yi为0时,则写下全0。然后再对乘数Y的高一位进行类似乘法运算。重复“加—右移”操作N次,可得到最后的乘积。R0存放部分积,R2存放被乘数,R1存放乘数
R0清零,R2存放被乘数,R1存放乘数。乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出至R0的输入端。一旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作用下右移一位,且计数器I记数一次; 将步骤三重复执行N次 当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:
一是符号位需要单独运算,最后给运算结构以正确的符号; 二是对于采用补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不方便,而且影响速度。补码乘法的特点是乘数、被乘数用补码表示,符号位参加运算,希望得到的结果就是乘积的补码,符号位在运算中形成
在定点计算机中,完成两个原码表示的数相除时,商的符号由两数的符号位和原码乘法运算方法一样,用模2求和得到,而商的数值部分则是两个正数相除得到
计算机中执行除法时,商的符号位由被除数和除数的符号位通过一个半加器实现;
对于数值部分,由于定点小数的绝对值小于1,如果被除数大于或等于除数,则商就大于或等于1,因而会产生溢出,这是不允许的。 因此在执行除法以前,先要判别是否溢出,不溢出时才执行除法运算。判别溢出的方法是被除数减去除数,若差为正,就表示溢出,即要求被除数<除数。恢复余数法的运算规则:
计算机中进行除法时,是模仿十进制除法笔算的过程,但又不能完全照搬。 在机器中判断是否够减,必须先做减法,若余数为正,表示够减;若余数为负,表示不够减 ,不够减时,必须恢复原来的余数,以便再继续往下运算,这种方法称为恢复余数法。 要恢复原来的余数,只要当前的余数加上除数即可。恢复余数法的缺点:
当某一次-Y的差值为负时,要多一次+Y恢复余数的操作,降低了执行速度,又使控制线路变得复杂,因此在计算机中很少采用加减交替法的规则:
首先作X-Y,余数为正,表明产生溢出,应终止除法运算;余数为负,上商为0(作为商的符号位),然后重复下述操作n次,可得商的n位数值
a. 余数左移一位。 b. 余数为正时,减除数;余数为负时,加除数。 c. 所得的新余数为正时,上商为1;为负时,上商为0。 由于运算中余数共左移了n次,相当于乘2n,故最后得余数应乘上2-n才是真正的正确余数。⑴ 0操作数检查:用来判断两个操作数中是否有一个为0.看有无简化操作的可能
⑵ 对阶操作:即比较两个浮点数的阶码值的大小,求E=Ex-Ey,然后将小阶对大阶。 ⑶ 尾数进行加或减运算:实现尾数的加减运算,执行两个完成对阶后的浮点数的求和(差)的过程 ⑷ 规格化并进行舍入处理:若得到的结果不满足规格化规则,就必须把它变成规格化的数。舍入操作,在执行对阶或右规操作时,会使位数低位上的一位或若干位的数值被移掉,使数值精度受到影响,可以把移掉的几个高位的值保存起来供舍入使用4.规格化和舍入处理
结果的符号位与最高符号数值位相同,应执行左规处理,所谓左规格化的规则,就是尾数左移1位,阶码减1,所以结果为:11.00010101(10) ,阶码为00 011,这里采用舍入处理,采用0舍1入法处理,则有
本题不采用IEEE754标准,其规格化的目标是:尾数的绝对值应大于等于1/2且小于1。即正数应为0.1……,负数应为1.0……。可见,当尾数的最高数值位与符号位不同时,即为规格化数
浮点数的阶码运算(移码的运算规则)
[X]移+[Y]移=2n+[X+Y]移设有浮点数x=2-5×0.0110011,y=23×(-0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求[x×y]浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。
转载地址:http://xtsxn.baihongyu.com/