題目: 寫一個函數, 求兩個整數之和, 要求在函數體內不得使用+, -, *, /四則運算符號.
不能使用運算符號, 使用位運算, 第一步異或運算選位, 第二步與運算進位.
代碼:
/* * 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