在 JavaScript 中不使用 '+', '-', '/', '*' 查詢兩個數字的和
我們需要編寫一個 JavaScript 函式 add(),它接收兩個數字 m 和 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));解釋
兩個位元的和可以透過對這兩個位元執行異或(^)運算來獲得。而進位位元可以透過對兩個位元執行與(&)運算來獲得。
這裡我們使用了半加器邏輯的擴充套件版本,該邏輯可以用於將兩個單個位元相加以新增兩個整數。如果 x 和 y 在相同的位置沒有設定位元,則 x 和 y 的按位異或(^)運算給出 x 和 y 的和。
為了合併常見的設定位元,也使用了按位與(&)運算。x 和 y 的按位與運算給出所有進位位元。我們計算了 (x & y) << 1 並將其新增到 x ^ y 以獲得所需的結果。
輸出
控制檯中的輸出將是:
100
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP