概述
ps:思路是1.把十进制乘法转成了二进制乘法,2.二进制乘法可以用位移来实现。
/*
用加法模拟乘法
*/
#include <stdio.h>
#include <stdlib.h>
//#define T(O,R,N,i) (N&(1<<i)) && (O+=(R<<i))
#define T(o,a,b,i) (b&1<<i) && (o+=a<<i)
int simulateMutiply(int a,int b)
{
int out=0;
T(out, a, b, 0);
T(out, a, b, 1);
T(out, a, b, 2);
T(out, a, b, 3);
T(out, a, b, 4);
T(out, a, b, 5);
T(out, a, b, 6);
T(out, a, b, 7);
T(out, a, b, 8);
T(out, a, b, 9);
T(out, a, b, 10);
T(out, a, b, 11);
T(out, a, b, 12);
T(out, a, b, 13);
T(out, a, b, 14);
T(out, a, b, 15);
T(out, a, b, 16);
T(out, a, b, 17);
T(out, a, b, 18);
T(out, a, b, 19);
T(out, a, b, 20);
T(out, a, b, 21);
T(out, a, b, 22);
T(out, a, b, 23);
T(out, a, b, 24);
T(out, a, b, 25);
T(out, a, b, 26);
T(out, a, b, 27);
T(out, a, b, 28);
T(out, a, b, 29);
T(out, a, b, 30);
T(out, a, b, 31);
return out;
}
int main(void) {
printf("%d n",simulateMutiply(26,3));
return EXIT_SUCCESS;
}
最后
以上就是着急老师为你收集整理的用加法模拟乘法的全部内容,希望文章能够帮你解决用加法模拟乘法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复