用加法模拟乘法
/* 用加法模拟乘法 */ #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
微信公众号:
猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。