Untitled
unknown
plain_text
2 years ago
2.3 kB
7
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...