50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 计算机乘除法发展 计算机基本运算(乘除法)

计算机乘除法发展 计算机基本运算(乘除法)

时间:2022-10-03 15:01:09

相关推荐

计算机乘除法发展 计算机基本运算(乘除法)

一、乘法

1. 计算表达式:x*y (其中y = 2^n0+2^n1+2^n2+2^n3+2^n4.....)

则x*y = (x)*( 2^n0+2^n1+2^n2+2^n3+2^n4.....)= (x*2^n0)+(x*2^n1)+(x*2^n2)+….

即(x左移0位)+(x左移1位)+(x左移2位)+(x左移3位)+......

2. 以15(x)*13(y)来举例,15*13 = 1111 * 1101

a. y的最低位为 1(2^0), 则x左移0位得到1111

b.y的第二低位为0,因此本次运算结果视为0

c.y的第三低位为1(2^2), 则x左移2位得到111100

d.y的第四低位为1(2^3), 则x左移3位得到1111000

e.把a,b,c,d的结果相加即为该表达式的乘法结果:

15*13 = 1111 * 1101 = 1111 + 0 + 111100 + 1111000 = 11000011

3.用一个小程序模拟计算机乘法

#include

using namespace std;

int multi(int a,int b)

{

int tmp=0;

if(a

while(b)

{

if(b&0x1)

{

tmp+=a;

}

a<<=1;

b>>=1;

//cout<

//cout<

}

return tmp;

}

int main()

{

int a,b;

while(cin>>a>>b)

cout<

return 1;

}

二、除法

x/y其实就是,x不断减y的过程。小学时候学的长长除法就是这个原理。

用二进制的除法x/y,比十进制容易写,商不是0即是1,而且如果除数大于被除数的1倍,商就是标记在另一个位上面了

用85/6来举例,85/6=1010101/110

a.101(0101)左移1位到第3位都小于110,因此商=000

b.1010(101)左移四位是1010,比110大,商=0001,余数=1010-110=100(101)

c.余数100(101)左移一位是1001,比110大,商=00011,余数=1001-110=11(01)

d.余数11(01)左移一位是110,等于110,商=000111,余数=0(1)

e.余数0(1)左移一位是01,小于110,商=0001110,余数=01

因此85/6=1010101/110=0001110,即14,余数为最后的余数1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。