Cần viết hàm add() nhận hai số m, n. Không dùng 4 phép toán cơ bản, hãy cộng hai số và trả về tổng.
Ví dụ
Mã thực hiện:
const m = 67, n = 33; const add = (x, y) => { while(y !== 0){ let carry = x & y; x = x ^ y; y = carry << 1; }; return x; }; console.log(add(m, n));
Giải thích
Tổng hai bit = XOR (^) hai bit. Bit nhớ = AND (&) hai bit. Mở rộng logic Half Adder để cộng số nguyên. Nếu x,y không có bit 1 cùng vị trí, XOR cho tổng. Để tính bit nhớ chung, dùng AND. Tính (x & y) << 1 cộng vào x ^ y để ra kết quả.
Kết quả
Kết quả in ra console:
100