
计算机中二进制的乘法和除法如何用加法来实现的
3个回答
展开全部
计算机的乘法是"移位"->"相加"。举例来说:1010*0011=?
a=1010; b=0011。那个是乘数,那个是被乘数都没关系,不加区别;
先看b的最高位,=0,则移位a,并乘以0;次高位=0,同理,...
得出四个数,分别是0000,0000,1010,1010。我们按顺序相加:
0 x1010=0000最高位:0000---(千位移三位)
0 x1010=0000次高位:-0000--(百位移两位)
1 x1010=1010次低位:--1010-(十位移一位)
1 x1010=1010最低位:---1010(个位不移位)
--------------------------------------------------------
结果是:------------------0011110
(看到最左侧了么?从高到低就是0011)
即:a=10(十进制),b=3(十进制),结果=30(十进制),就是二进制的0011110=0x1E(十六进制)。其中包含一个重要的硬件:列向错位加法器7个,一个横向加法器(结果寄存器);
致于除法,就用移位减法的办法来实现的,原理与乘法相通。不够减后就停止,得出余数。
a=1010; b=0011。那个是乘数,那个是被乘数都没关系,不加区别;
先看b的最高位,=0,则移位a,并乘以0;次高位=0,同理,...
得出四个数,分别是0000,0000,1010,1010。我们按顺序相加:
0 x1010=0000最高位:0000---(千位移三位)
0 x1010=0000次高位:-0000--(百位移两位)
1 x1010=1010次低位:--1010-(十位移一位)
1 x1010=1010最低位:---1010(个位不移位)
--------------------------------------------------------
结果是:------------------0011110
(看到最左侧了么?从高到低就是0011)
即:a=10(十进制),b=3(十进制),结果=30(十进制),就是二进制的0011110=0x1E(十六进制)。其中包含一个重要的硬件:列向错位加法器7个,一个横向加法器(结果寄存器);
致于除法,就用移位减法的办法来实现的,原理与乘法相通。不够减后就停止,得出余数。
展开全部
计算机中的二进制乘法和除法不是只用加法来实现的,也就是并不是把乘除化成加法。
CPU里有乘法器,可以完成二进制的乘法运算。如果是浮点数的运算,CPU里有浮点运算单元,可以完成。
CPU里完成整数或浮点数的乘法是用硬件完成的,实现的具体的思路你可以百度一下“乘法器”。
当然,如果你想用加法实现的话,可以用移位运算和加法配合,这个是很容易的。
记得采纳~
CPU里有乘法器,可以完成二进制的乘法运算。如果是浮点数的运算,CPU里有浮点运算单元,可以完成。
CPU里完成整数或浮点数的乘法是用硬件完成的,实现的具体的思路你可以百度一下“乘法器”。
当然,如果你想用加法实现的话,可以用移位运算和加法配合,这个是很容易的。
记得采纳~

你对这个回答的评价是?
展开全部
二进制乘法,和十进制乘法,是一毛一样的。
十进制乘法,你是怎么运算的? 二进制乘法,你也怎么运算便是!
只有在做加法时,才要用到:逢二进一。
例如,乘法运算:-23 × 5 = -115。
用二进制如下计算便是。
1 0 1 1 1 = 23
× 1 0 1 = 5
----------
1 0 1 1 1
0 0 0 0 0
1 0 1 1 1
----------
1 1 1 0 0 1 1 = 115。
如果两个乘数的符号相同,乘积的符号,就取正号(+),否则便是负号(-)。
所以,本例题的二进制算法就是:- 10111 × 101 = - 111 0011。
乘法运算的具体计算方法,不过就是:移位、相加。
这个方法步骤,用“加法器、移位寄存器”来实现,是相当容易的。
可参考如下逻辑图:
虽然容易实现,但是对于计算机专业来说,却是毫无意义的事!
说到计算机的硬件,则是电子技术专业的领域了。
计算机专业的老师说这些,不过就是:窝窝头翻个,显个大 P 眼而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询