位運算 二進位制中的1的個數和位運算的相關題目

2021-10-10 01:35:50 字數 1102 閱讀 8915

1. 與、或、異或的運算規律

與(&)

或(丨)

異或(^)

0 & 0 = 0

0 丨 0 = 0

0 ^ 0 = 0

1 & 0 = 0

1 丨 0 = 1

1 ^ 0 = 1

0 & 1 = 0

0 丨1 = 1

0 ^ 1 = 1

1 & 1 = 1

1 丨 1 = 1

1 ^ 1 = 0

2. 二進位制中的1的個數

2.1 可能引起死迴圈的解法

思路:先判斷整數二進位制表示中最右邊一位是不是1;接著把輸入的整數右移一位,此時原來處於從右邊數起的第二位被移到最右邊了,再判斷是不是1;每次這樣移動一位,直到整個整數變成0為止。

public

static

intnumberof

(int n)

return count;

}

2.2 常規解法

思路:首先把n和1做與運算,判斷最低位是不是1。接著把1左移一位得到2,再和n做與運算,就能判斷n的次低位是不是1…這樣反覆左移,每次都能判斷n的其中一位是不是1。

public

static

intnumberof2

(int n)

return count;

}

2.3 不可思議的解法

思路:把乙個整數減去1,再和原整數做與運算,會把該整數最右邊的1變成0。那麼乙個整數的二進位制表示中有多少個1,就可以進行多少次這樣的操作。

public

static

intnumberof3

(int n)

return count;

}

3.位運算相關題目

用一條語句判斷乙個整數是不是2的整數次方(二進位制有且只有乙個1);

輸入兩個整數m和n,計算需要改變m的二進位製表中的多少位才能得到n(兩數異或,統計異或的結果)。

2.3中把乙個整數減去1之後再和原來的整數做位運算,得到的結果相當於把整數的二進位制表示中最右邊的1變成0。

二進位制位運算中 1 的個數

題目描述 現在夯夯和朱朱餓了,他們想去吃點東西,他們發現店裡東西的 都是2的次方倍 20,21,22 現在夯夯和朱朱想把他們的的錢全都用掉。想知道他們最少能吃多少東西,最多能吃多少東西?輸入格式 多組樣例,每組樣例佔一行,每行乙個整數,代表他們擁有的總錢數。輸出格式 分別回答他們的問題,答案用空格隔...

位運算 二進位制中1的個數,常見的位運算

求n的第k位數字 n k 1返回n的最後一位1 lowbit n n n 如果5 就返回1 如果是4,就返回4 100 如果是8,就返回8 1000 裡面是二進位制。給定乙個長度為n的數列,請你求出數列中每個數的二進位制表示中1的個數。輸入格式 第一行包含整數n。第二行包含n個整數,表示整個數列。輸...

位運算 二進位制中1的個數12

位運算 是把數字用二進位制表示之後,對每一次是0或1的運算。乘除效率低,實際程式設計中盡可能的用移位運算代替乘除法。世界上有10中人,一種人知道二進位制,而另一種人不知道二進位制 五種位運算 與 或 異或 左移和右移,分別對應 異或 相同為0,相異為1。左移運算子m左移n,表示把m左移n位,最左邊的...