1. 程式人生 > >實現加法計算(不用加減乘除運算子)

實現加法計算(不用加減乘除運算子)

題目: 不用加減乘除實現兩個數相加。
解題:第一步:不考慮進位,兩個數相加sum(例如:5+7=2)
第二步:求進位carry(例如:5+7有進位10)
第三步:sum加carry,若有進位返回第一步,若無進位,跳出。
程式碼實現中用異或(^)實現第一步,用與(&)實現第二步.

int Add(int num1, int num2)
{

int sum, carry;
do
{
    sum = num1^num2;
    carry = (num1&num2) << 1;
    num1 = sum;
    num2 = carry;

} while (num2 != 0);

return num1;

}