Сложность: easy
Напишите функцию, которая принимает бинарное представление положительного целого числа и возвращает количество установленных битов (также известных как вес Хэмминга).
Пример:
Input: n = 11
Output: 3
Explanation:
The input binary string 1011 has a total of three set bits.
👨💻 Алгоритм:
1️⃣Решение простое: проверяем каждый из 32 битов числа. Если бит равен 1, увеличиваем количество 1-битов на единицу.
2️⃣Для проверки i-го бита числа используем битовую маску. Начинаем с маски m=1, так как двоичное представление 1 это 0000 0000 0000 0000 0000 0000 0000 0001. Логическое И между любым числом и маской 1 дает нам младший бит этого числа.
3️⃣Для проверки следующего бита сдвигаем маску влево на один:
0000 0000 0000 0000 0000 0000 0000 0010 и так далее.
😎 Решение:
function hammingWeight(n) {
let bits = 0;
let mask = 1;
for (let i = 0; i < 32; i++) {
if ((n & mask) !== 0) {
bits++;
}
mask <<= 1;
}
return bits;
}Ставь 👍 и забирай 📚 Базу знаний