#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("各种进制之间相互转换");
}
MainWindow::~MainWindow()
{
delete ui;
}
//QString::number()和setNum()都可以转换
void MainWindow::on_btn1_clicked()
{//十进制转为其他进制
QString str = ui->shi->text();
int value = str.toInt();//十进制,toInt()默认是10进制数
str = str.setNum(value,2);//转为二进制
ui->er->setText(str);
str = str.setNum(value,16).toUpper();//转为十六进制
ui->shiliu->setText(QString("0x%1").arg(str));
str = str.setNum(value,8);//转为八进制
ui->ba->setText(str);
}
void MainWindow::on_btn2_clicked()
{//二进制转为其他进制
QString str = ui->er->text();//二进制
bool ok;
int value = str.toInt(&ok, 2);//以二进制数读入,读取成功ok=true;
qDebug() << "ok=" << ok;
str = QString::number(value,10);//转为十进制
ui->shi->setText(str);
str = QString::number(value,16).toUpper();//转为十六进制
ui->shiliu->setText(QString("0x%1").arg(str));
str = QString::number(value,8);//转为八进制
ui->ba->setText(str);
}
void MainWindow::on_btn3_clicked()
{//十六进制转为其他进制
QString str = ui->shiliu->text();//十六进制
bool ok;
int value = str.toInt(&ok, 16);//以十六进制数读入
str = QString::number(value,10);//转为十进制
ui->shi->setText(str);
str = str.setNum(value,2);//转为二进制
ui->er->setText(str);
str = QString::number(value,8);//转为八进制
ui->ba->setText(str);
}
void MainWindow::on_btn4_clicked()
{//八进制转为其他进制
QString str = ui->ba->text();//八进制
bool ok;
int value = str.toInt(&ok, 8);//以八进制数读入
str = QString::number(value,10);//转为十进制
ui->shi->setText(str);
str = str.setNum(value,2);//转为二进制
ui->er->setText(str);
str = QString::number(value,16).toUpper();//转为十六进制
ui->shiliu->setText(QString("0x%1").arg(str));
}
|