fork download
  1. """
  2. Python 程式練習:
  3. 寫一程式讀入一整數(python用二的補數系統表示此整數),
  4. 計算此整數在該表示法下1的個數,
  5. 若是奇數個則列印odd parity 否則列印 even parity。
  6. (e.g 輸入 5 (bit pattern : 0...0101) 輸出 even parity)
  7. (required skills: while loop; (bit level 邏輯運算 & (AND), >> (shift right)。
  8. """
  9.  
  10.  
  11. number=int(input())
  12. print("bit pattern:",bin(number) ) #10進位轉為2進位
  13.  
  14.  
  15. countOne=0 #計算1的個數
  16. while number:
  17. countOne+=(number&1)#將number的值做位元運算
  18. #若個位數位元為1
  19. #則countOne+1
  20. #否則countOne+0
  21.  
  22. number= number>>1 #number右移一位元
  23.  
  24. print(countOne)
  25.  
  26.  
  27.  
Success #stdin #stdout 0.03s 9860KB
stdin
8
stdout
bit pattern: 0b1000
1