除法补码加减交替法.ppt
- 格式:ppt
- 大小:220.00 KB
- 文档页数:2
补码除法(加减交替法)规则说明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同。
补码加减交替法计算x÷y
补码加减交替法计算x÷y是目前广泛应用的一种数据运算方法,它的应用可以极大地提高计算机的数据处理能力,拓展出更多的可能性。
首先,补码加减交替法计算x÷y,需要将除数y映射到一个负数上,以实现有效的数据运算。
在计算机的运用中,y的负补码在内存中占据四个字节空间,将发生的状态记录得以保存。
在运算过程中,由于要求对负数y执行减法操作,故要与X对应,按照比特地址来指定。
其后,由于X和y的补码求和具有系统性,因此可以按照一定的步骤循环进行计算。
首先确定除数的补码的原码,在上述条件内,由此可求得Y及其补码,建立模型,两个补码加减取得结果。
最后通过取余、查表及逐比特运算等方法,获得结果值,完成补码加减法计算X÷Y的过程。
补码加减交替法计算x÷y具有视觉上更直观、操控性更强、效率更高等一系列优点,在解决我国民生、经济发展中的实际应用中也有重要的作用,充分发挥了它的强大优势与作用。
同时,它也将大大提高计算机的处理速度、运行效率,满足人们的不断增长的需求。
总之,补码加减交替法计算x÷y的应用不仅在计算机语言技术中具有重要的意义,在实际的政务与民生领域中,也拥有重要的作用。
因此,未来补码加减交替法计算x÷y将会有更广阔的发展空间,为实现经济发展,提高民生发挥着重大作用。
首先我们来看为什么要使用补码运算法:因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 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。