用加法模拟乘法

简介:
复制代码
    /* 
         用加法模拟乘法 
     */  
      
    #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;  
    }  
复制代码

转自:http://blog.csdn.net/shandianling/article/details/8785481





本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3171557.html,如需转载请自行联系原作者

目录
相关文章
|
存储 数据处理
计算机数据的表示及运算
计算机数据的表示和运算是计算机系统中非常重要的概念。计算机使用二进制来表示和处理数据,其中包括整数、浮点数和字符等不同类型的数据。下面将详细介绍计算机数据的表示和运算。 1. 二进制表示:计算机使用二进制系统来表示数据。二进制系统由0和1两个数字组成,每一位称为一个比特(bit)。比特是计算机中最小的存储单位,可以表示一个二进制数值(0或1)。 2. 整数表示:计算机使用补码表示整数。补码是一种用于表示负数的方法,它将负数的最高位设为1,正数的最高位设为0。补码表示可以保证负数的运算结果仍然是有效的。 3. 浮点数表示:计算机使用浮点数表示实数。浮点数由两个部分组成:尾数和指数。尾数表示
173 0
|
4月前
|
Python
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
首先,我们可以从基本的数学运算开始,比如加法、减法、乘法、除法等。
|
6月前
|
计算机视觉
加法运算
【5月更文挑战第8天】加法运算。
113 4
计算机内部乘法除法实现
计算机内部乘法除法实现 乘法:先来个例子:7×5可以写成如下的二进制方式,7为乘数,5为被乘数。7×5=0111×0101那么规则就是,按照被乘数的低位到高位依次计算,如果第n位不为0,那么乘数就左移n位,如果第n为为0 ,那么这步运算结果记为0,最后将每一步的结果相加就是最终的计算结果。 除法:依然先来个例子:123/4写成二进制的形式如下,123为除数,4为被除数。123/4=1111...
88 0
计算机内部乘法除法实现
|
存储 Java 大数据
|
Java
不用加减乘除做加法
不用加减乘除做加法
97 0
不用加减乘除做加法