用位实现两个数的相加

来源:互联网 发布:sails.js 编辑:程序博客网 时间:2024/05/21 23:00
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int Add(int num1,int num2)  
  5. {  
  6.     if (num2 == 0)  
  7.     {  
  8.         return num1;  
  9.     }  
  10.   
  11.     int tmp=0;
  12.     int carry=0;                     
  13.   
  14.     tmp = num1^num2;                
  15.     carry = (num1 & num2) << 1;            
  16.   
  17.     return Add(tmp,carry);         
  18.                                       
  19.                                    
  20. }  
  21.   
  22. int main()  
  23. {  
  24.     cout<<Add(5,7)<<endl;  
  25.     return 0;  
  26. }