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...