count-bits 416 B

1234567891011121314151617181920212223
  1. #!/usr/bin/python
  2. import sys
  3. set_bits = 0
  4. while True:
  5. block = sys.stdin.read(2**16)
  6. if not block:
  7. break
  8. #print('got block of length %d' % len(block))
  9. for char in block:
  10. byte = ord(char)
  11. #print('got char %d' % byte)
  12. for exponent in range(8):
  13. bitmask = 2**exponent
  14. #print('checking mask %d' % bitmask)
  15. if byte & bitmask != 0:
  16. #print('adding 1 to count')
  17. set_bits += 1
  18. print(set_bits)