计算机中二进制的乘法和除法如何用加法来实现的

 我来答
Sunray
2011-08-13 · TA获得超过290个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:112万
展开全部
计算机的乘法是"移位"->"相加"。举例来说: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个,一个横向加法器(结果寄存器);
致于除法,就用移位减法的办法来实现的,原理与乘法相通。不够减后就停止,得出余数
iker_casillas
2011-08-11 · TA获得超过1992个赞
知道小有建树答主
回答量:582
采纳率:100%
帮助的人:839万
展开全部
计算机中的二进制乘法和除法不是只用加法来实现的,也就是并不是把乘除化成加法。
CPU里有乘法器,可以完成二进制的乘法运算。如果是浮点数的运算,CPU里有浮点运算单元,可以完成。
CPU里完成整数或浮点数的乘法是用硬件完成的,实现的具体的思路你可以百度一下“乘法器”。

当然,如果你想用加法实现的话,可以用移位运算和加法配合,这个是很容易的。

记得采纳~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式