bit_manipulation.count_number_of_one_bits

Functions

benchmark(→ None)

Benchmark code for comparing 2 functions, with different length int values.

get_set_bits_count_using_brian_kernighans_algorithm(→ int)

Count the number of set bits in a 32 bit integer

get_set_bits_count_using_modulo_operator(→ int)

Count the number of set bits in a 32 bit integer

Module Contents

bit_manipulation.count_number_of_one_bits.benchmark() None

Benchmark code for comparing 2 functions, with different length int values. Brian Kernighan’s algorithm is consistently faster than using modulo_operator.

bit_manipulation.count_number_of_one_bits.get_set_bits_count_using_brian_kernighans_algorithm(number: int) int

Count the number of set bits in a 32 bit integer >>> get_set_bits_count_using_brian_kernighans_algorithm(25) 3 >>> get_set_bits_count_using_brian_kernighans_algorithm(37) 3 >>> get_set_bits_count_using_brian_kernighans_algorithm(21) 3 >>> get_set_bits_count_using_brian_kernighans_algorithm(58) 4 >>> get_set_bits_count_using_brian_kernighans_algorithm(0) 0 >>> get_set_bits_count_using_brian_kernighans_algorithm(256) 1 >>> get_set_bits_count_using_brian_kernighans_algorithm(-1) Traceback (most recent call last):

ValueError: the value of input must not be negative

bit_manipulation.count_number_of_one_bits.get_set_bits_count_using_modulo_operator(number: int) int

Count the number of set bits in a 32 bit integer >>> get_set_bits_count_using_modulo_operator(25) 3 >>> get_set_bits_count_using_modulo_operator(37) 3 >>> get_set_bits_count_using_modulo_operator(21) 3 >>> get_set_bits_count_using_modulo_operator(58) 4 >>> get_set_bits_count_using_modulo_operator(0) 0 >>> get_set_bits_count_using_modulo_operator(256) 1 >>> get_set_bits_count_using_modulo_operator(-1) Traceback (most recent call last):

ValueError: the value of input must not be negative