我是靠谱客的博主 着急老师,最近开发中收集的这篇文章主要介绍用加法模拟乘法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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;
}

最后

以上就是着急老师为你收集整理的用加法模拟乘法的全部内容,希望文章能够帮你解决用加法模拟乘法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部