首页 > 代码库 > 不用+、-、×、÷数字运算符做加法
不用+、-、×、÷数字运算符做加法
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; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。