Вычислить двоичное представление заданного десятичного числа - 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;
}

Объяснение кода листинга программы

В данном коде выполняется вычисление двоичного представления заданного десятичного числа.

  1. Функция binprint(unsigned n) принимает в качестве аргумента десятичное число n и рекурсивно вызывает саму себя, предварительно сдвигая число влево на 1 разряде (n >> 1). Если число не равно нулю, то есть имеет 1 в младшем бите, то рекурсия продолжается. В противном случае, когда число становится равным нулю, рекурсия завершается и в консоль выводится единица (printf(%u, n & 1));
  2. Функция main(void) является точкой входа в программу. В ней вызывается функция binprint(255);, которая вычисляет двоичное представление числа 255. Затем выводится символ новой строки (\n), чтобы перейти на новую строку. Аналогично выполняется вызов функции binprint(5); для числа 5 и binprint(19); для числа 19.
  3. binprint(255); вычисляет двоичное представление числа 255 и выводит его в консоль.
  4. binprint(5); вычисляет двоичное представление числа 5 и выводит его в консоль.
  5. binprint(19); вычисляет двоичное представление числа 19 и выводит его в консоль.
  6. printf(\n); выводит символ новой строки (\n), чтобы перейти на новую строку.
  7. return 0; указывает на успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.714 из 5
Похожие ответы