移位運算練習

2021-08-21 06:45:05 字數 655 閱讀 4873

1、統計乙個整數n表示為二進位制後,1的個數

2、統計兩個整數m,n,將m轉化為n需要改變的位數

3、將乙個整數n的i到j位替換為m。

1、思路:每次將n減去1再做與運算,將n最右邊的數由1變為0,那麼乙個數中有多少個1,就需做多少次這樣的運算,n=n&(n-1)直到n=0。

2、思路:先將兩個數做異或運算,再統計運算後的數中二進位制表示1的個數,即需改變的位數

3、思路:保留左邊j-n位,保留右邊0-i位,將中間的i-j位替換為m

#include

#include

using namespace std;

int numof1(int n)

return count;

}int bittochange(int a,int b)

int bitreplale(int m,int n,int i,int j)

{int max=~0;

int left=max-((1<)n<)1<<" "<<(bitset<8>)2 <)128<)5<)bitreplale(256,5,2,5)<

運算結果:

00001010

200000001 00000010

210000000

00000101

00010100

java 移位運算

移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...

C C 移位運算

c c 移位運算 一 移位運算子及其規則 移位運算子就是在二進位制的基礎上對數字進行平移,是在補碼的基礎上進行操作的。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 無符號右移 左移運算子的規則 1 int型別數值實際移位的次數是和32的餘數,移位33次和移位1次得到的結果相同 例如int...

移位運算 二

對於乙個位表示為 xw 1,xw 2,x0 的運算元,x k 會生成乙個值,其位表示為 xw k 1,xw k 1,x0,0 0 也就是說,x向左移動k位,丟棄最高的k位,並在右端補 k 個0.右移一般指算術右移,即x k,是指乙個位表示為 xw 1,xw 2,x0 右移後,其位表示為 xw 1,x...