用位運算實現兩個整數的加減乘除運算

2022-09-15 07:54:11 字數 951 閱讀 9095

位運算的思想可以應用到很多地方,這裡簡單的總結一下用位運算來實現整數的四則運算。

1.整數加法

int add(int a,int

b)

return

a ;

}

我的思路主要是利用a+1的位運算就是最左端(從第0位開始向左)連續的1變為0,原先a中為0的位置最低那一位變為1。

在不同的位上加1,那就是從相應的位開始向左計算,右邊不變。

下面還有乙個網上的思路,我覺得這個更好:

int add(int a,int

b)

我簡化一下:

int add(int a,int b)  

上面的思路就是先不計進製相加,然後再與進製相加,隨著遞迴,進製會變為0,遞迴結束。

2.整數減法

這個和加法一樣了,首先取減數的補碼,然後相加。

int minus(int a,int

b)

3.整數乘法

乘法就是將乘數寫成(2^0)*k0 + (2^1)*k1 + (2 ^2)*k2 + ... + (2^31)*k31,其中ki為0或1,然後利用位運算和加法就可以了。

int mul(int a,int

b)

4.整數除法

除法就是由乘法的過程逆推,依次減掉(如果夠減的話)divisor << 31、divisor << 30、... 、divisor << 2、divisor << 1、divisor(要保證不能溢位)減掉相應數量的除數就在結果加上相應的數量。

int div(int dividend, int

divisor)

}return sign*quotient;

}

用位運算實現兩個整數的加減乘除

1.整數加法 cpp view plain copy intadd inta,intb return a 我的思路主要是利用a 1的位運算就是最左端 從第0位開始向左 連續的1變為0,原先a中為0的位置最低那一位變為1。在不同的位上加1,那就是從相應的位開始向左計算,右邊不變。下面還有乙個網上的思路...

用位運算實現兩個整數的加減乘除運算

位運算的思想可以應用到很多地方,這裡簡單的總結一下用位運算來實現整數的四則運算。整數加法 int add int a,int b return a 我的思路主要是利用a 1的位運算就是最左端 從第0位開始向左 連續的1變為0,原先a中為0的位置最低那一位變為1。在不同的位上加1,那就是從相應的位開始...

用位運算實現兩個整數的加減乘除運算

位運算的思想可以應用到很多地方,這裡簡單的總結一下用位運算來實現整數的四則運算。1.整數加法 cpp view plain copy intadd inta,intb return a 我的思路主要是利用a 1的位運算就是最左端 從第0位開始向左 連續的1變為0,原先a中為0的位置最低那一位變為1。...