上一节我们说到“计算机中数的运算(源码,反码,补码)”,这节我们谈谈二进制的乘法和除法。
乘法:(被乘数)1100*(乘数)110
实现方法:由左到右依次判断乘数的值,如果值为1,就加上被乘数到部分积,之后部分积左移一位,如果值为0,部分积左移一位,直到判断到乘数最后一位。
部分积:(00000000)初始化一个部分积,为你们方便观看。
乘数第一位1
部分积加被乘数为:1100
然后左移一位:11000
乘数第二位1
部分积加被乘数为:100100
然后左移一位:1001000
乘数第三位0
部分积不做操作,而且已经最后一位,不做移位
最后1100*110=1001000
除法:(被除数)1100/(除数)110
实现方法:被除数为A,除数为B,商为C,余数为D;
A由左到右左移进入D。每次移位后比较D和B的值
如果D大于等于B,则商加上1,反之加0,然后从D中减去B(),直到A全部移完为止。最后C存放的商,D存放的余数。
第一步
A=1100 左移进入D,A=100
D=1 B=110;D<B;
C=0
第二步
A=100 左移进入D,A=00
D=11 B=110 D≥B成立;
11-110=0
D=0
C=01
第三步
A=00左移进入D,A=0
D=0 B=110 D<B
C=010
第四步
A=0左移进入D,A完毕
D=0 B=110;D<B;
最后:C为=010=10 ;D为0
所以1100/110=10;商为10,余数为0
网友评论文明上网理性发言已有0人参与
发表评论: