Вычислить двоичное представление заданного десятичного числа - C (СИ)
Формулировка задачи:
Помогите с темой рекурсия..... Нужно написать программу которая вычисляет двоичное представление заданного десятичного числа, если можно то с комментариями, пожалуйста...
Решение задачи: «Вычислить двоичное представление заданного десятичного числа»
textual
Листинг программы
#include <stdio.h> void binprint(unsigned n) { if ( n ) binprint(n >> 1); printf("%u", n & 1); } int main(void) { binprint(255); printf("\n"); binprint(5); printf("\n"); binprint(19); printf("\n"); return 0; }
Объяснение кода листинга программы
В данном коде выполняется вычисление двоичного представления заданного десятичного числа.
- Функция binprint(unsigned n) принимает в качестве аргумента десятичное число n и рекурсивно вызывает саму себя, предварительно сдвигая число влево на 1 разряде (n >> 1). Если число не равно нулю, то есть имеет 1 в младшем бите, то рекурсия продолжается. В противном случае, когда число становится равным нулю, рекурсия завершается и в консоль выводится единица (printf(
%u
, n & 1)); - Функция main(void) является точкой входа в программу. В ней вызывается функция binprint(255);, которая вычисляет двоичное представление числа 255. Затем выводится символ новой строки (\n), чтобы перейти на новую строку. Аналогично выполняется вызов функции binprint(5); для числа 5 и binprint(19); для числа 19.
- binprint(255); вычисляет двоичное представление числа 255 и выводит его в консоль.
- binprint(5); вычисляет двоичное представление числа 5 и выводит его в консоль.
- binprint(19); вычисляет двоичное представление числа 19 и выводит его в консоль.
- printf(
\n
); выводит символ новой строки (\n), чтобы перейти на новую строку. - return 0; указывает на успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д