位運算的列子

2021-07-13 08:07:28 字數 1129 閱讀 7093

去掉最後一位 ¦ (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...