mirror of
https://github.com/trekhleb/javascript-algorithms.git
synced 2025-12-08 19:06:00 +00:00
19 lines
396 B
JavaScript
19 lines
396 B
JavaScript
/**
|
|
* @param {number} originalNumber
|
|
* @return {number}
|
|
*/
|
|
export default function countSetBits(originalNumber) {
|
|
let setBitsCount = 0;
|
|
let number = originalNumber;
|
|
|
|
while (number) {
|
|
// Add last bit of the number to the sum of set bits.
|
|
setBitsCount += number & 1;
|
|
|
|
// Shift number right by one bit to investigate other bits.
|
|
number >>>= 1;
|
|
}
|
|
|
|
return setBitsCount;
|
|
}
|