位運算常見問題

2021-10-19 11:08:58 字數 763 閱讀 8949

首先求出這個數的二進位制中除最右側1的那位不變,其餘位都是0。

例如:1110,最右側是1的那個數是0010,0010是如何得出的呢?

記乙個小公式:n&((~n)+1)

n=1110帶入即可求出最右側的1的那位數

1110&((~1110)+1)=1110&(0010)=0010

因此計算n的二進位制中1的個數就很容易了

public

static

intbit1count

(int n)

return count ;

}

異或運算滿**換律結合律,其實就一句話:異或操作與數字運算的順序無關,任何乙個數異或它本身都等於0。

public

void

printoddnum2

(int

array)

// eor = a^b 只要知道a b中的任何乙個就能計算出另乙個

int rightone = eor&

(~eor+1)

;int eor2 =0;

// 找這個數二進位制的最右側是1的那位數,因為其他數字是偶數個所以異或之後是0

for(

int i=

0;isystem.out.

println

(eor2)

; system.out.

println

(eor2^eor)

;}

32 位和 64 位 Windows 常見問題

以下是有關 32 位和 64 位版本 windows 的一些常見問題的解答。32 位和 64 位版本 windows 之間有什麼區別?術語 32 位 和 64 位 是指計算機的處理器 也稱為 cpu 處理資訊的方式。64 位版本的 windows 可處理大量的隨機訪問記憶體 ram 其效率遠遠高於 ...

運算子的常見問題

1 算數運算子常見問題 1 運算浮點時運算會有誤差 二進位制精度問題影響 2 算術運算子中前後有字串的出現且有 運算子的情況下則一般會完成字串的拼接。3 如果運算過程中沒有字串且使用 運算子的情況下,其他型別都會轉換為number型別並進行加法運算。4 所有型別遇到 運算子時,都會隱式轉換為數值,然...

常見位運算

builtin ffs x 返回x的最後一位1是從後向前第幾位 builtin popcount x 返回x的二進位制下1的個數 x x 只保留最後一位1的二進位制 x x x 1 清零最低位的1 x 1 判斷奇偶 x 1 n 將第n位置1 x 1 n 將第n位置0 x 1 k 1 對x的第k位取反...