Перевести числа из одной системы счисления в другую - C (СИ)

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

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

Позиционные системы счисления

Напишите программу, которая умеет переводить числа из одной системы счисления в другую. _______________________________________________________________

На входе

В первой строке указаны два целых числа, B и C, которые определяют основания систем счисления для перевода (исходную и финальную), 2 ≤ B,C ≤ 36. Вторая строка является представлением целого числа A в исходной системе счисления с основанием B (0 ≤ A ≤ 109). В качестве знаков используются десятичные цифры от 0 до 9 и, при необходимости, заглавные латинские буквы от A до Z со стандартными значениями от 10 до 35.
_______________________________________________________________

На выходе

Строка из цифр от 0 до 9 и, при необходимости, заглавных латинских букв от A до Z, задающая представление числа A в финальной системе счисления с основанием C.
_______________________________________________________________
Пример№1

На входе

10 2 12

На выходе

1100
_______________________________________________________________
Пример №2

На входе

16 8 A53F

На выходе

122477

Решение задачи: «Перевести числа из одной системы счисления в другую»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. int main(void)
  6. {
  7.     int A, B, C;
  8.     char s[20], *p, i;
  9.     scanf("%i%i", &B, &C);
  10.     scanf("%s", s);
  11.     for (A = 0, p = s; *p; p++)
  12.     {
  13.         if ('0' <= *p && *p <= '9')
  14.             i = *p - '0';
  15.         else
  16.             if ('A' <= *p && *p <= 'Z')
  17.                 i = *p - 'A' + 10;
  18.             else
  19.                 i = 0;
  20.         A = B*A + i;
  21.     }
  22.     _itoa(A, s, C);
  23.     printf("%s\n", s);
  24.     _getch();
  25.     return 0;
  26. }

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

  1. Включаем необходимые заголовочные файлы для работы с функциями ввода-вывода и строками
  2. Определяем функцию main, в которой будут выполняться все действия программы
  3. Объявляем переменные A, B, C типа int для хранения чисел, а также переменную s типа char для хранения строки
  4. С помощью функции scanf считываем два числа (B и C) и строку (s)
  5. Используя цикл for, перебираем каждый символ в строке s
  6. Проверяем, является ли текущий символ числом (от '0' до '9') или буквой (от 'A' до 'Z')
  7. Если символ является числом, то преобразуем его в числовое значение и добавляем к переменной A
  8. Если символ является буквой, то преобразуем его в числовое значение (от 'A' до 'Z' соответствуют числам от 10 до 35) и добавляем к переменной A
  9. После обработки всех символов, преобразуем значение переменной A в строку с помощью функции _itoa
  10. Выводим полученную строку на экран
  11. Ждем нажатия клавиши с помощью функции _getch
  12. Завершаем программу с кодом 0, указывающим на успешное выполнение

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


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

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

14   голосов , оценка 4.286 из 5

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

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

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