算法之道----不用加,减, 乘 ,除计算 a+b的值#include stdio.hint bitAdd(int a ,int b){printf(第一次
算法之道----不用加,减, 乘 ,除 计算 a+b的值
#include "stdio.h"int bitAdd(int a ,int b){printf("第一次递归 bitAdd(%d ,%d )\n",a,b );int jin = a&b;//进位int notJin = a^b;if (jin!=0){return bitAdd(jin<<1,notJin);}else{return notJin;}return 0;} int main(){int a ,b;printf("输入两个数做加法(空格隔开)\n");scanf("%d %d",&a,&b);printf("结果:%d+%d=%d",a,b,bitAdd(a,b));return 0;}
?结果:
?
? ? ? ?
?
?
?
1 楼 justjavac 2 小时前 在计算机底层,所有的运输都是通过位运算进行的。这个问题只要学过底层的都轻而易举。 2 楼 mengqingyu 1 小时前 这么写比直接运算快很多?实际测过吗?