Untitled
unknown
plain_text
2 years ago
2.3 kB
6
Indexable
#include <iostream> #include <cmath> int main() { // Перевод из 14 в 8 ричную систему счисления std::string N; std::cout << "Введите число в 14-ричной системе счисления: "; std::cin >> N; // Проверка на существование чисел в 14-ричной системе for(char d : N) { if (!((d >= '0' && d <= '9') || (d >= 'A' && d <= 'F'))) { std::cout << "Неверный ввод 14-ричной системы счисления." << std::endl; return 1; // Завершаем программу с ошибкой } } std::string oN = ""; int dN = 0; for (int i = 0; i < N.length(); i++) { char d = N[i]; int dV = 0; if (d >= '0' && d <= '9') {dV = d - '0';} else if (d >= 'A' && d <= 'D') {dV = d - 'A' + 10;} else if (d >= 'E' && d <= 'F') {dV = d - 'E' + 14;} dN += dV * pow(14, N.length() - i - 1); } while (dN > 0) { int r = dN % 8; dN /= 8; oN = std::to_string(r) + oN; } std::cout << "Число в 8-ричной системе счисления: " << oN << std::endl; // И обратная программа std::string iN; std::cout << "Введите число в 8-ричной системе счисления: "; std::cin >> iN; // Проверка на существование чисел в 8-ричной системе for(char t : iN) { if (!(t >= '0' && t <= '7')) { std::cout << "Неверный ввод 8-ричной системы счисления." << std::endl; return 1; // Завершаем программу с ошибкой } } std::string tN = ""; int lN = 0; for (int i = 0; i < iN.length(); i++) { char t = iN[i] - '0'; lN = lN * 8 + t; } while (lN > 0) { int r = lN % 14; lN /= 14; if (r >= 0 && r <= 9) { tN = std::to_string(r) + tN;} else if (r >= 10 && r <= 13) {tN = char('A' + r- 10) + tN;} } std::cout << "Число в 14-ричной системе счисления: " << tN << std::endl; return 0; }
Editor is loading...