ปัญหา
เขียนฟังก์ชัน add() บวกสองจำนวนโดยไม่ใช้สี่ดำเนินการพื้นฐาน
โค้ดตัวอย่าง (Bitwise)
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));
คำอธิบาย
ใช้หลัก Half Adder: XOR (^) ให้ผลรวมบิต, AND (&) ให้ carry bit แล้ว shift 左 1 บิต วนจนไม่มี carry
ผลลัพธ์
100