不用加减乘除做加法 代码(C)
?
?
题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四则运算符号.
?
不能使用运算符号, 使用位运算, 第一步异或运算选位, 第二步与运算进位.
?
代码:
?
/*
* main.cpp
*
* Created on: 2014.7.13
* Author: Spike
*/
#include
#include
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
?
?
?