1
0
forked from 131/lab3_test
Files
lab3_test/bit_lib.c
2025-11-01 03:04:24 +03:00

24 lines
741 B
C

#include "bit_lib.h"
int bit_count(unsigned int number)
{
int count = 0;
// Цикл продолжается, пока в 'number' есть хотя бы один единичный бит
while (number > 0) {
// (number & 1) проверяет, является ли *последний* бит единицей.
// (1 & 1) -> 1
// (0 & 1) -> 0
if ((number & 1) == 1) {
count++;
}
// >> 1 — это побитовый сдвиг вправо.
// Он "отбрасывает" последний бит и сдвигает все остальные.
// 1011 (11) >> 1 станет 0101 (5)
number = number >> 1;
}
return count;
}