Написать рекурсивную функцию перевода натурального числа из 10 в 16 системы счисления - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать рекурсивную функцию перевода натурального числа из десятичной системы счисления в 16-ричную.

Решение задачи: «Написать рекурсивную функцию перевода натурального числа из 10 в 16 системы счисления»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void hexprint(unsigned n) {
  4.     if ( n ) {
  5.         hexprint(n >> 4);
  6.         printf("%c", "0123456789abcdef"[n & 0xf]);
  7.     }
  8. }
  9.  
  10. int main(void) {
  11.     unsigned n;
  12.    
  13.     while ( printf("Num: ") && scanf("%u", &n) == 1 && printf("Hex: ") ) {
  14.         if ( ! n )
  15.             printf("0\n");
  16.         else {
  17.             hexprint(n);
  18.             printf("\n");
  19.         }
  20.     }
  21. }

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

В этом коде написана функция hexprint, которая рекурсивно выводит натуральное число в шестнадцатеричной системе счисления. Алгоритм работы функции hexprint следующий:

  1. Если число больше или равно 16, то функция вызывает саму себя, передавая в качестве аргумента число, полученное путем сдвига числа на 4 бита вправо (для первого вызова сдвиг будет на 0 битов).
  2. После этого функция выводит в шестнадцатеричной системе счисления единицу или ноль в зависимости от значения последнего бита числа.
  3. Если число меньше 16, то функция просто выводит его. В функции main пользователю предлагается ввести натуральное число, которое затем преобразуется в шестнадцатеричную систему счисления с помощью функции hexprint. После этого пользователю предлагается ввести еще одно число и т.д. Полный список действий:
  4. Ввод числа с клавиатуры.
  5. Преобразование числа в шестнадцатеричную систему счисления с помощью функции hexprint.
  6. Вывод результата в консоль.
  7. Предложение пользователю ввести еще одно число и повторить процесс.

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


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

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

15   голосов , оценка 4.533 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы