Вопрос задан 26.09.2023 в 01:39. Предмет Информатика. Спрашивает Боранбаев Адиль.

Простейший алгоритм, функция перевода числа из одной системы счисления в другую, через десятичную

c++
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Машукова Полина.

Ответ:

#include <iostream>

#include <cmath>

#include <algorithm>

using namespace std;

int main()

{

   int a, b;

   string u;

   

   cin >> a >> b >> u;

   

   int de = 0;

   

   for (int i = 0; i < u.length(); i++)

   {

       de += (u[i] - '0') * pow(a, u.length() - i - 1);

   }

   

   string su;

   

   while (de > 0)

   {

       su.push_back((de % b) + '0');

       de = de / b;

   }

   

   reverse(su.begin(), su.end());

   cout << su;

   return 0;

}

Объяснение:

a - исходная система счисления,

b - итоговая,

u - вводимое число в виде строки

de - результат в 10-чной системе счисления

su в b-ичной системе счисления

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Перевод числа из одной системы счисления в другую через десятичную систему счисления можно выполнить следующим образом на языке C++ с использованием простого алгоритма. В этом примере предполагается, что исходное число представлено в виде строки, и вы хотите перевести его из системы счисления с основанием base_from в систему счисления с основанием base_to.

cpp
#include <iostream> #include <string> // Функция для конвертации символа из одной системы счисления в десятичную int charToDecimal(char c) { if (c >= '0' && c <= '9') { return c - '0'; } else if (c >= 'A' && c <= 'Z') { return c - 'A' + 10; } else if (c >= 'a' && c <= 'z') { return c - 'a' + 10; } // Обработка ошибки: символ не принадлежит допустимому диапазону return -1; } // Функция для конвертации числа из одной системы счисления в десятичную int convertToDecimal(const std::string& number, int base_from) { int decimal_value = 0; int base_power = 1; for (int i = number.length() - 1; i >= 0; i--) { int digit = charToDecimal(number[i]); if (digit == -1 || digit >= base_from) { std::cerr << "Ошибка: Недопустимая цифра в числе." << std::endl; return -1; } decimal_value += digit * base_power; base_power *= base_from; } return decimal_value; } // Функция для конвертации числа из десятичной системы в другую систему счисления std::string convertFromDecimal(int decimal_value, int base_to) { std::string result = ""; while (decimal_value > 0) { int remainder = decimal_value % base_to; char digit_char; if (remainder < 10) { digit_char = '0' + remainder; } else { digit_char = 'A' + remainder - 10; } result = digit_char + result; decimal_value /= base_to; } return result; } int main() { std::string input_number; int base_from, base_to; // Введите число, изначальную систему счисления и желаемую систему счисления std::cout << "Введите число: "; std::cin >> input_number; std::cout << "Введите изначальное основание системы счисления: "; std::cin >> base_from; std::cout << "Введите желаемое основание системы счисления: "; std::cin >> base_to; // Перевести число в десятичную систему int decimal_value = convertToDecimal(input_number, base_from); if (decimal_value != -1) { // Перевести число из десятичной системы в желаемую std::string result = convertFromDecimal(decimal_value, base_to); std::cout << "Результат: " << result << std::endl; } return 0; }

Этот код сначала принимает ввод числа, изначальной системы счисления и желаемой системы счисления, затем использует функции convertToDecimal для перевода числа в десятичную систему и convertFromDecimal для перевода числа из десятичной системы в желаемую.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос