使用位運算實現加減乘除

2021-08-14 01:28:11 字數 1044 閱讀 4293

經常看到類似」不使用***符號的前提下,實現加、減、乘、除「?第一次遇見的同學可能會懵,如果你記起來乙個叫位運算的東西就會豁然開朗了。

加法:比如5+6。小學的時候數學老師告訴我們的是,先求不算進製的值,也就是1,然後再將進製結果(這裡是1)加入,直到進製為0。使用位運算也是同樣的道理。只不過我們對於進製和不進製的結果的產生感到陌生而已。

位運算中兩個數相加的不進製結果:a^b,進製結果a&b;之後取a&b左移一位後的結果和a^b相加,如此一直加下去,直到進製為0,此時就能得到結果。

減法:減法其實也是屬於加法,因為a-b=a+(-b);於是首先需要將b取相反數,位運算中只要將b位取反後加上1即可,b=~b加1。

乘法:乘法就是多次的加法而已,這裡不再累述。

除法:就是多次的減法,直到被除數小於等於0。

public

class solution3

return sum;

}public

intminus(int a, int b)

public

intmulti(int a, int b)

return a;

}public

intdivide(int dividend, int divisor) catch (exception e)

int result = 0;

if (a > 0 && b > 0)

return result;

} else

if (a < 0 && b > 0) else

if (a > 0 && b < 0) else

if (a < 0 && b < 0)

return result;

}public

static

void

main(string args) }/*

輸出:5

1210

5*/

使用位運算實現加減乘除

在不使用 四則運算符號的情況下,通過基本位運算實現加減乘除四則運算。1.c 中使用位運算實現加法 首先,我們通過對x和y進行 位運算,得出每一位上的進製。然後對x和y進行 位運算,得出沒有加進制的和。最後將所得的和當做新的x,所得的進製往左移一位 第零位的進製輸入為0 當做新的y,繼續做上面的步驟,...

位運算實現加減乘除

include include 加法運算 int add int a,int b 補碼中正數轉負數的原理 int negative int a 減法運算 int sub int a,int b 判斷正負 bool isnegative int a 僅計算正數乘法 int multi help int...

位運算實現加減乘除

關於邏輯右移和算術右移 vs中,對於unsigned型別,是邏輯右移,對於signed,算術右移 加法器的實現 對於不考慮進製的加法 0 0 0 1 0 1 0 1 1 1 1 0 即是異或運算 考慮進製 0 0 1 0 0 0 1 0 1 1 1 即是與運算 以下程式,a即不考慮進製部分,b為進製...