// bitcounter.go
// description: Counts the number of set bits in a number
// details:
// For unsigned integer number N, return the number of bits set to 1 - [Bit numbering](https://en.wikipedia.org/wiki/Bit_numbering)
// time complexity: O(log(n))
// space complexity: O(1)
// author(s) [red_byte](https://github.com/i-redbyte)
// see bitcounter_test.go
package binary
// BitCounter - The function returns the number of set bits for an unsigned integer number
func BitCounter(n uint) int {
counter := 0
for n != 0 {
if n&1 == 1 {
counter++
}
n >>= 1
}
return counter
}