码迷,mamicode.com
首页 > 其他好文 > 详细

不用+、-、×、÷数字运算符做加法

时间:2014-08-03 10:20:35      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:使用   os   io   amp   ios   c   ad   return   

1)使用位运算,sum1=a^b 相当于不进位的加法,因为0+1=1.1+0=1.1+1=0(因为不进位)0+0=0 正好是或运算

2)sum2=(a&b)<<1,相当于算进位的数,因为只有1+1时进位

3)结果就是sum1+sum2,当然如果这个加法还需要进位就执行第四步

4)重复上面的过程一直到进位数(a&b)<<1为零,也就是不需要进位为止

#include<iostream>
#include<stdio.h>
using namespace std;
int add(int a,int b){
	if(b==0)//当进位数为零时,a就是结果了
		return a;
	int num1,num2;
	num1=a^b;
	num2=(a&b)<<1;
	add(num1,num2);
}
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)){
		cout<<add(a,b)<<endl;
	}
}



 

不用+、-、×、÷数字运算符做加法,布布扣,bubuko.com

不用+、-、×、÷数字运算符做加法

标签:使用   os   io   amp   ios   c   ad   return   

原文地址:http://blog.csdn.net/youngyangyang04/article/details/38355333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!