Затруднение с разрядами числа - C (СИ)
Формулировка задачи:
Определить количество единиц в двоичном представлении введенного натурального
числа. Помогите пожалуйста
Решение задачи: «Затруднение с разрядами числа»
textual
Листинг программы
#include <stdio.h>
int main(void) {
int n = 753328;
int k=0;
while (n)
{
k+=n&1;
n>>=1;
}
printf("Кол-во 1-ц: %d\r\n", k);
return 0;
}
Объяснение кода листинга программы
Код выполняет подсчет количества 1-цифровых разрядов числа.
- В первую очередь объявляются две переменные: — n (количество разрядов числа, которое необходимо проверить); — k (количество 1-цифровых разрядов, которое будет храниться в процессе прохода по всем разрядам числа).
- В процессе выполнения цикла while (пока n не станет равным нулю) происходят следующие действия: — k увеличивается на единицу (это происходит в случае, если очередной разряд числа равен 1); — n сдвигается вправо на единицу (это необходимо для перехода к следующему разряду числа).
- После выполнения цикла значение переменной k выводится на экран с помощью функции printf.
- В конце программы возвращается 0, что означает успешный конец работы программы.