不用加减乘除做加法 代码(C)
本文地址: http://blog.****.net/caroline_wendy
题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.
不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.
代码:
/*
* main.cpp
*
* Created on: 2014.7.13
* Author: Spike
*/ #include <iostream>
#include <list> using namespace std; 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;
} int main(void)
{
int result = Add(105, 37);
std::cout << "result = " << result << std::endl;
return 0;
}
输出:
result = 142