计算机中二进制的乘法和除法如何用加法来实现的
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:数学作业 时间:2024/07/22 21:53:56
计算机中二进制的乘法和除法如何用加法来实现的
![计算机中二进制的乘法和除法如何用加法来实现的](/uploads/image/z/1804179-3-9.jpg?t=%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%AD%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%9A%84%E4%B9%98%E6%B3%95%E5%92%8C%E9%99%A4%E6%B3%95%E5%A6%82%E4%BD%95%E7%94%A8%E5%8A%A0%E6%B3%95%E6%9D%A5%E5%AE%9E%E7%8E%B0%E7%9A%84)
计算机的乘法是"移位"->"相加".举例来说: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个,一个横向加法器(结果寄存器);
致于除法,就用移位减法的办法来实现的,原理与乘法相通.不够减后就停止,得出余数.