divider = 2;
let bits = 0;
while (n !== 0) {
n = n / divider;
if (!Number.isInteger(n)) {
n = Math.floor(n);
bits++;
}
}
return bits;
};
Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.
Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case
вопрос
как вам решение этой проблемы? что можно облегчить или улучшить
Вместо деления можно использовать побитовые "и" с числом на 1 меньше(n & (n-1)) . Так у тебя получится по 1 иттерации на каждую битовую единицу.
я не понял смысл этого выражения, можешь пожалуйста объяснить или сказать как называется, что бы я проинформировался
Обсуждают сегодня