javascript-algorithms icon indicating copy to clipboard operation
javascript-algorithms copied to clipboard

Is not arithmetic shift better in countSetBits.js?

Open oThinas opened this issue 1 year ago • 0 comments

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.

oThinas avatar Jul 19 '24 03:07 oThinas