Python 統計二進位制數中1的個數

2021-10-04 11:05:21 字數 508 閱讀 5091

# coding=utf-8

"""question:

將乙個整數轉換為二進位制形式,統計二進位制中 1 的個數,如果是負數,按補碼統計。

設乙個整數為 4 個位元組

"""def count_bin_one(num):

if num < 0:

num &= 0xffffffff # 將記憶體中負數的二進位制變成對應正數

# bin(num)得到乙個字串,帶進製標識故要 -2

bits = len(bin(num)) - 2 # 計算二進位制數的位數

count = 0 # 計數值

for i in range(bits):

if num & 2 ** i: # 按位相與,判斷是否為 1

count += 1

return count

if __name__ == '__main__':

print(count_bin_one(-1))

python二進位制數加1 二進位制中為1的位數

二進位制中為1的位數 題目要求 給定乙個整數,請計算二進位制中為1的位數 輸入 13 輸出 3 解釋 13的二進位制表示是 1101,位為1的數量是3 思路分析 如果乙個數是奇數,那麼它的二進位制的最後一位一定是1,道理很簡單,其他的位都表示2n 只有最後一位表示20 我們可以利用最後一位是否為1來...

統計二進位制數中有幾個1

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位製表中1的個數。例如,把9表示成二進位制是1001,有兩位是1,因此,如果輸入9,則該函式輸出2。下面給出四種演算法 1.基本思路是判斷二進位制中最右邊一位是不是1 接著右移一位,此時右邊數起的第二位被移到了最右邊,再判斷是不是1 這樣每次移動一位,...

統計二進位制數 dp

題目描述 輸入乙個正整數m,請輸出從0到m中每乙個數字二進位制數中含有1的個數的總和,由於數值較大結果需要模100000.輸入格式 乙個m輸出格式 二進位制數中含有1的個數的總和s 輸入輸出樣例輸入2 輸出2輸入5 輸出7說明 提示 樣例說明 20 的資料 m 500 50 的資料 m 1000 7...