Нужно чтобы считало не для 123, а для 123,52552 чисел #include <iostream> #include <string> #include <cctype> using namespace std; int main() { setlocale(LC_ALL, "Russian"); string digits = "0123456789abcdefghijklmnopqrstuvwxyz"; unsigned int maxRadix = digits.length(); string value; unsigned int from, to; printf("Введите исходную систему счисления: \n"); scanf_s("%d", &from); printf("Выходная система счисления: \n"); scanf_s("%d", &to); back: cout << "Введите число: \n "; cin >> value; if (from < 2 || from > maxRadix || to < 2 || to > maxRadix) { cerr << "Неправильно значение\n"; return 1; } for (size_t i = 0; i < value.length(); i++) { size_t pos = digits.find(tolower(value[i])); if (pos == string::npos || pos > from) { cerr << "Неправильное значение " << value << endl; return 1; } } unsigned long long number = 0; for (size_t i = 0; i < value.length(); ++i) { char k = tolower(value[i]); number = number * from + ((k >= 'a') ? k - 'a' + 10 : k - '0'); } string result; while (number) { result.push_back(digits[number % to]); number /= to; } for (int i = 0, j = result.length() - 1; i < j; ++i, --j) { char x = result[i]; result[i] = result[j]; result[j] = x; } cout << result << endl; goto back; system("pause"); return 0; } Код #include <iostream> #include <string> #include <cctype> using namespace std; int main() { setlocale(LC_ALL, "Russian"); string digits = "0123456789abcdefghijklmnopqrstuvwxyz"; unsigned int maxRadix = digits.length(); string value; unsigned int from, to; printf("Введите исходную систему счисления: \n"); scanf_s("%d", &from); printf("Выходная система счисления: \n"); scanf_s("%d", &to); back: cout << "Введите число: \n "; cin >> value; if (from < 2 || from > maxRadix || to < 2 || to > maxRadix) { cerr << "Неправильно значение\n"; return 1; } for (size_t i = 0; i < value.length(); i++) { size_t pos = digits.find(tolower(value[i])); if (pos == string::npos || pos > from) { cerr << "Неправильное значение " << value << endl; return 1; } } unsigned long long number = 0; for (size_t i = 0; i < value.length(); ++i) { char k = tolower(value[i]); number = number * from + ((k >= 'a') ? k - 'a' + 10 : k - '0'); } string result; while (number) { result.push_back(digits[number % to]); number /= to; } for (int i = 0, j = result.length() - 1; i < j; ++i, --j) { char x = result[i]; result[i] = result[j]; result[j] = x; } cout << result << endl; goto back; system("pause"); return 0; }