天天看点

LeetCode 371 两整数之和(不使用+、-运算符)

#include "stdio.h"

int getSum(int a, int b) {
	int sum;
	unsigned int carry;

	while (1)
	{
		sum = a ^ b;    //1.第一次为没有进位的值 2.后面相或补进位
		carry = a & b;  //需要进位对应的值
		if (carry == 0) //直到没有要进的位
		{
			break;
		}
		a = sum;
		b = carry << 1; //每进一位后,前面的位数就不进了
	}
	return sum;
}

int main()
{
	printf("%d", getSum(3, 5));
}



           

继续阅读