Trong hướng dẫn này, thảo luận cách cộng hai số nguyên không dùng toán tử số học trong C/C++.
Có thể dùng con trỏ (pointer) hoặc toán tử bitwise.
Ví dụ
Dùng con trỏ
#includeusing namespace std; int sum(int a, int b){ int *p = &a; return (int)&p[b]; } int main() { int add = sum(2,3); cout << add << endl; return 0; }
Kết quả
5
Ví dụ
Dùng toán tử bitwise
#includeusing namespace std; int sum(int a, int b){ int s = a ^ b; int carry = a & b; if (carry == 0) return s; else return sum(s, carry << 1); } int main() { int add = sum(2,3); cout << add << endl; return 0; }
Kết quả
5