We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent f66325a commit d3ac521Copy full SHA for d3ac521
bit_manipulation/count_number_of_one_bits.py
@@ -0,0 +1,34 @@
1
+def get_set_bits_count(number: int) -> int:
2
+ """
3
+ Count the number of set bits in a 32 bit integer
4
+ >>> get_set_bits_count(25)
5
+ 3
6
+ >>> get_set_bits_count(37)
7
8
+ >>> get_set_bits_count(21)
9
10
+ >>> get_set_bits_count(58)
11
+ 4
12
+ >>> get_set_bits_count(0)
13
+ 0
14
+ >>> get_set_bits_count(256)
15
+ 1
16
+ >>> get_set_bits_count(-1)
17
+ Traceback (most recent call last):
18
+ ...
19
+ ValueError: the value of input must be positive
20
21
+ if number < 0:
22
+ raise ValueError("the value of input must be positive")
23
+ result = 0
24
+ while number:
25
+ if number % 2 == 1:
26
+ result += 1
27
+ number = number >> 1
28
+ return result
29
+
30
31
+if __name__ == "__main__":
32
+ import doctest
33
34
+ doctest.testmod()
0 commit comments