- 5
- 0
- 约6.49千字
- 约 36页
- 2017-04-25 发布于四川
- 举报
09_计算机的运算方法04
;第六章 计算机的运算方法;;原码一位除法基本上是从手算演变过来,符号位单独处理。
两个原码表示的数相除运算规则:
商的符号位:两数的符号相异或
商的数值部分:两数的绝对值相除。
运算方法与普通的十进制小数除法相类似,
设 n 位被乘数X 和 乘数Y 用定点小数表示(定点整数同样)
被除数: [X]原 = Xf . Xn-1 … X1 X0
除数: [Y]原 = Yf . Yn-1 … Y1 Y0
商 [ Q ]原= ( Xf ⊕ Yf ) + (0.Xn-1 … X1 X0) / (0.Yn-1 … Y1 Y0)
于是原码与原码相除就变成如何进行两个正数相除的问题了。
两种除法: 恢复余数法
不恢复余数法(加减交替法);两个数相除,上商时,
人会心算,一看就知道够不够减。
够减商1,不够减商0。
但机器不会,必须先作减法。
若余数为正,才知道够减;
若余数为负,才知道不够减。
不够减时,必须恢复原来的余数。
顾名思义恢复余数法。;被除数 X=0.1011 除数Y=0.1101 求 X/Y。商精确到小数点后四位。
手算方法计算步骤如下:;4.1、原码一位除法;寄存器A存放 被除数 X = 0.1011 ,后来可存放余数,累次参加运算。
寄存器B存放 除数 Y = 0.1101
寄存器C存放 商 Q = X / Y
另外设置计数器CR控制循环次数。
[X]原- [Y]原 运算可以用 [X]补 + [-Y]补取代;
[Y]补= 0.1101 [-Y]补= 1.0011; 被除数X(余数) 商 操作
0. 1011 0 0 0 0 0
+ 1. 0011 - Y (+ [-Y]补)
1. 1110 0 0 0 0 0 负数:不够减,商0
+ 0. 1101 +Y 恢复余数, (+ [Y]补)
0. 1011 0 0 0 0 0 余数和商同时左移一位
1. 0110 0 0 0 0 0
+ 1. 0011 - Y (+ [-Y]补)
0. 1001 0 0 0 0 1 正数:够减,商1
1. 0010 0 0 0 1 0 余数和商同时左移一位
+ 1. 0011 - Y (+ [-Y]补)
0. 0101 0 0 0 1 1 正数:够减,商1
0. 1010 0 0 1 1 0 余数和商同时左移一位
+ 1. 0011 - Y (+ [-Y]补)
1. 1101 0 0 1 1 0 负数:不够减,商0
+ 0. 1101 + Y 恢复余数, (+ [Y]补)
0. 1010 0 0 1 1 0 余数和商同时左移一位
1. 0100 0 1 1 0 0
+ 1. 0011 - Y (+ [-Y]补)
0. 0111 0 1 1 0 1 正数:够减,商1;2)不恢复余数法(加减交替法)
加减交替法是对恢复余数除法的一种修正。
当余数为负时,不恢复,继续求下一位商,
但用加上除数 (+Y) 的办法来取代 (-Y) 操作,其他操作不变。
加减交替法的规则如下:
原创力文档

文档评论(0)