不用加减乘除做加法
引用地址: http://blog.csdn.net/caroline_wendy
题目: 写一个函数,求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.
不能使用运算符号,使用位运算,第一步异或运算选位,第二步与运算进位.
代码:
-
-
- #include
- #include
-
- using
namespace std; -
- int
Add int( num1, intnum2) { -
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