1. 程式人生 > >利用位運算實現兩個整數的加法運算

利用位運算實現兩個整數的加法運算

#include <stdio.h>

int main(void) { 
	int add(int a,int b);
	int m,a,b;
	scanf("%d,%d",&a,&b);
	m = add(a,b);
	printf("m=%d",m);
	return 0;
}
<--  運用位運算,a當做結果和,b當做進位結果,這樣不斷的運算,一直保證沒有進位,運算即結束   -->
int add(int a,int b){
    if(b == 0) return a;//沒有進位時,完成運算,a為最終和。
    int sum,carry;
    sum = a ^ b;//沒有進位的加法運算
    carry = (a & b) << 1;//進位,左移運算。
    return add(sum , carry);//遞迴,相加。
}