Перевести числа из одной системы счисления в другую - 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
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(void)
{
    int A, B, C; 
    char s[20], *p, i; 
    scanf("%i%i", &B, &C);
    scanf("%s", s);
    for (A = 0, p = s; *p; p++) 
    {
        if ('0' <= *p && *p <= '9')
            i = *p - '0';
        else 
            if ('A' <= *p && *p <= 'Z')
                i = *p - 'A' + 10; 
            else
                i = 0;
        A = B*A + i;
    }
    _itoa(A, s, C);
    printf("%s\n", s);
    _getch();
    return 0;
}

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

  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
Похожие ответы