Open
Description
The file countSetBits.js
has the function:
/**
* @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;
}
I wonder if it wouldn't be better to use an arithmetic shift on line number >>>= 1
instead of a logical shift, thus preserving the sign of the number.
Metadata
Metadata
Assignees
Labels
No labels