Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm tổng của hai số mà không sử dụng '+', '-', '/', '*' trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript add () nhận vào hai số m và n. Hàm, không cần sử dụng bốn phép tính số học cơ bản, sẽ thêm hai số được lấy làm đầu vào và trả về tổng.

Ví dụ

Mã cho điều này sẽ là -

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 của hai bit có thể nhận được bằng cách thực hiện XOR (^) của hai bit. Và bit mang có thể thu được bằng cách thực hiện AND (&) của hai bit.

Ở đây, chúng tôi đã sử dụng phiên bản mở rộng của logic Half Adder có thể được sử dụng để thêm 2 bit đơn để thêm hai số nguyên. Nếu x và y không đặt các bit ở cùng (các) vị trí thì XOR (^) theo chiều dọc của x và y cho tổng của x và y.

Để kết hợp các bit tập hợp chung, cũng sử dụng bitwise AND (&). Bitwise AND của x và y cho tất cả các bit mang. Chúng tôi đã tính toán (x &y) <<1 và thêm nó vào x ^ y để có kết quả cần thiết.

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

100