去掉最後一位 ¦ (101101->10110) ¦ x >> 1
在最後加乙個0 ¦ (101101->1011010) ¦ x < < 1
在最後加乙個1 ¦ (101101->1011011) ¦ x < < 1+1
把最後一位變成1 ¦ (101100->101101) ¦ x ¦ 1
把最後一位變成0 ¦ (101101->101100) ¦ x ¦ 1-1
最後一位取反 ¦ (101101->101100) ¦ x ^ 1
把右數第k位變成1 ¦ (101001->101101,k=3) ¦ x ¦ (1 < < (k-1))
把右數第k位變成0 ¦ (101101->101001,k=3) ¦ x & ~ (1 < < (k-1))
右數第k位取反 ¦ (101001->101101,k=3) ¦ x ^ (1 < < (k-1))
取末三位 ¦ (1101101->101) ¦ x & 7
取末k位 ¦ (1101101->1101,k=5) ¦ x & ((1 < < k)-1)
取右數第k位 ¦ (1101101->1,k=4) ¦ x >> (k-1) & 1
把末k位變成1 ¦ (101001->101111,k=4) ¦ x ¦ (1 < < k-1)
末k位取反 ¦ (101001->100110,k=4) ¦ x ^ (1 < < k-1)
把右邊連續的1變成0 ¦ (100101111->100100000) ¦ x & (x+1)
把右起第乙個0變成1 ¦ (100101111->100111111) ¦ x ¦ (x+1)
把右邊連續的0變成1 ¦ (11011000->11011111) ¦ x ¦ (x-1)
取右邊連續的1 ¦ (100101111->1111) ¦ (x ^ (x+1)) >> 1
去掉右起第乙個1的左邊 ¦ (100101000->1000) ¦ x & (x ^ (x-1))
判斷奇數 (x&1)==1
判斷偶數 (x&1)==0
例如求從x位(高)到y位(低)間共有多少個1
public static int findchessnum(int x, int y, ushort k)
return re;
}
位運算 57 普通的位運算
要求說明 當 a 2,b 4,c 6,d 8時程式設計求a c b d a d a的值。解 單目運算子 都是對對應整數轉化成二進位制數後按位比較計算 兩個相應二進位中,都為1,該位為1,否則為0 兩個相應二進位中,有乙個1,該位為1,否則為0 兩個相應二進位,相同為0,不同為1 單目運算子,作用對二...
位運算(1) 初識位運算
前段時間數電課學了些進製轉換,還有與或非等邏輯運算,如今再來看看位運算,倒輕鬆了不少。很早就想寫些非總結性部落格了,奈何還是太懶。也也不知怎的突然又來了興致,趕忙寫下這篇部落格。廢話不多說,今天準備總結總結關於位運算的知識。程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的,即0 1兩種狀態,...
標誌位的位運算應用
今天設計新版標誌位,老郭提出了乙個新的方案。以往都是乙個字段設定乙個狀態,tinyint型別,0或者1,但是這樣的壞處是如果乙個資訊表有很多狀態,需要增加很多的字段,空間利用不好,所以他提出用二進位制位運算來解決標示位的問題。設定標示位字段位tinyint型別,也就是最大128,換成二進位制就是有8...