Top.Mail.Ru
Ответы

Нужна помощь с кодом ( QT C++), (перевод из одной СС в другую)

Нужно сделать перевод в 10-ю систему счисления (из любой).
Смотрел статьи и мало нашел подходящего. Было видео (но там под консольное) и исправить пытался под QT.
Вроде все точно также, но ничего не работает. В коде необходимо ввести в одно поле число, а в другое систему счисления этого числа. Но ничего не получается. Возможно я так туплю...
Помогите исправить ошибку.
Заранее благодарю за помощь!

int chislo, iz;
int cc = chislo;
int ch = 0;
QString vivod_chislo;
chislo = ui->result->text().toDouble();
if(ui->number_perevod_2->isChecked())
{
while (cc>0)
{
if(cc%10>iz)
{
ui->result_4->setText("Ошибка");
}
cc = cc / 10;
ch++;
}
cc = chislo;
int itog=0;
for(int i=0;iresult_4->setText(vivod_chislo);
ui->number_perevod_2->setChecked(false);
}

По дате
По Рейтингу
Аватар пользователя
Просветленный
5лет

int parseNumber(QString str, int base) {
int result = 0;
for (QChar ch : str.toUpper()) {
int x = ch.unicode() - '0';
if (x > 9) x -= 7; // корректировка для 'A'...'Z'
result = result * base + x;
}
return result;
}

Входная строка (str) может содержать цифры и латинские буквы (в любом регистре), основание (base) должно быть от 2 до 36. Никаких проверок нет, переполнение результата тоже не проверяется.

Аватар пользователя
Гений
5лет

Какой-то бредокод. Похоже, "Ответы" испортили часть текста. Вставляй пробел после знака < , если далее идёт латинская буква. Иначе "Ответы" портят текст.
Не существует перевода из одной системы в другую. Есть перевод из стоки в какой-то системе счисления в число. У числа нет СС, это просто число. Ещё есть перевод в обратную сторону: из числа в строку в указанной СС.

Аватар пользователя
Просветленный
5лет

вы поля ввода назвали result и result_4 и теперь хотите, чтобы кто-то разбирался в в коде
-------
для целых чисел в qt есть QString QString::number(long, int) :
к примеру так:
ui->result->setText(QString::number(ui->number->text().toInt(), ui->base->text().toInt()));