本文介紹如何使用Python計算一個正整數在二進位下有多少個1。
一、初識二進位
計算一個正整數在二進位下有多少個1,必須先了解二進位的概念。二進位是計算機中數字的一種表示方式,只有0和1兩個數碼。二進位可以轉換為十進位以及其他進位。
二進位的轉換計算公式如下:
1 0 1 0 2^3 2^2 2^1 2^0 8 + 0 + 2 + 0 = 10
例如,二進位數1010,在十進位下的值為10。
二、計算二進位中為1的位數
計算一個正整數在二進位下有多少個1,可以通過以下代碼實現:
def count_ones(n): count = 0 while n: count += n & 1 n = n >> 1 return count print(count_ones(10)) # 輸出2
這個函數的實現原理是,將二進位數與1做位與運算,若結果為1,則說明該位是1,計數器+1;然後將二進位數右移一位,重複這個過程直到n為0。
三、進一步優化
以上代碼雖然實現了計算二進位中為1的位數,但是還存在優化空間。可以使用Python中的bin()函數將十進位數轉換為二進位字元串,然後計算該字元串中有多少個1。
def count_ones(n): binary_str = bin(n)[2:] count = binary_str.count('1') return count print(count_ones(10)) # 輸出2
這個函數的實現原理是,將十進位數轉換為二進位字元串,並用字元串的count()方法計算該字元串中有多少個1。
四、總結
本文介紹了Python計算一個正整數在二進位下有多少個1的兩種方法,第一種方法是使用位運算實現,第二種方法是將十進位數轉換為二進位字元串,然後計算該字元串中有多少個1。
原創文章,作者:FWWJR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373884.html