如何求二進位制數中0的個數

2021-10-08 20:14:55 字數 746 閱讀 8363

給定乙個整數,輸出這個整數的二進位制表示中 l 的個數。例如 : 給定整數 7,其二進位制表示為 111, 因此輸出結果為 3。

可以採用位操作來完成 。具體思路如下:首先,判斷這個數的最後 一位是否為1,如果 為 1,那麼計數器如門,然後,通過右移丟棄掉最後一位,迴圈執行該操作直到這個數等於 0 為止。在判斷二進位制表示的最後一位是否為1時,可以採用與運算來達到這個目的。具體實 現**如下 :

def countone(n):

count=0

while n>0:

if (n&1)==1:

count+=1

n>>=1

return count

print(countone(7))

給定乙個數 n,每進行一次 n&(n-1)計算,其結果中都會少了一位 l,而且是最後一位。例如, n=6,其對應的 二進位制表示為 110, n一1=5,對應的 二進位制表示為 101, n&(n 1)運算後 的二進位制表示為 100,其效果就是去掉了 110 中最後一位 1。可以通過不斷地用 n&(n 1)操作 去掉 n 中最後一位 1 的方法求出 n 中 l 的個數,實現**如下:

def countone(n):

count=0

while n>0:

if n!=0:

n=n&(n-1)

count+=1

return count

countone(7)

求二進位制數中0或1的個數

假如x是乙個二進數,例如x 0xfffa 1111 1111 1111 1010 要實現去掉最低位乙個0,可進行的操作是x x 1 此時x 0xfffb 1111 1111 1111 1011 再去掉乙個0,同樣,x x 1 則x 0xffff。如果x的2位元組表示,則 x 1 為0。基於該思想,利...

二進位制中1的個數 二進位制中0的個數

1 題目 實現乙個函式,輸入乙個整數,輸出該數二進位制表示中1的個數,例如把9表示成二進位制是1001,有2位是1。因此如果輸入9,該函式輸出2。2 解法 解法 一 可能會引起死迴圈的解法 基本思路 先判斷整數二進位制表示中最右邊一位是不是1。接著把輸入的整數右移一位,此時原理處於從右邊數起的第二位...

求二進位制數中1的個數

解法一 可以舉乙個八位的二進位制例子來進行分析。對於二進位制操作,我們知道,除以乙個2,原來的數字將會減少乙個0。如果除的過程中有餘,那麼就表示當前位置有乙個1。以10 100 010為例 第一次除以2時,商為1 010 001,余為0。第二次除以2時,商為101 000,余為1。因此,可以考慮利用...