Alexey Onikov be185ac9af
Fix infinity loop with negative numbers (#502)
* Update countSetBits.js

* Update countSetBits.test.js
2020-08-21 07:21:20 +02:00

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;
}