" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

QT實現(xiàn)二、八、十六進制之間的轉換

 更新時間:2022年05月15日 15:55:54   作者:麥子穗  
本文主要介紹了QT實現(xiàn)二、八、十六進制之間的轉換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

主要使用QT中的三個方法。

  • 第一個是QString::number(int n, int base = 10);
  • 第二個是QString::setNum(short n, int base = 10);
  • 第三個是int QString::toInt(bool *ok = nullptr, int base = 10) const

這三個方法默認值都是十進制。

先上效果圖,最后會附上源碼:

接下來開始代碼實現(xiàn):

首先打開QT->新建文件或項目,然后跟著圖中標注進行下一步

文件名和路徑自己設置就可。

一直點下一步;

一直點下一步。創(chuàng)建成功先點綠色箭頭運行一下。

接著重頭戲來了?。。。?/p>

 如圖所示,同時還會在.cpp文件中添加函數(shù)定義:

 所要實現(xiàn)的功能是,當點擊對應“轉換為其他進制”的按鈕時,獲取對應輸入框的內容,然后把內容轉換為對應進制。

主要hao

//QString::number()和setNum()都可以轉換
void MainWindow::on_btn1_clicked()
{//十進制轉為其他進制
    QString str = ui->shi->text();
    int value = str.toInt();//十進制,toInt()默認是10進制數(shù)
 
    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);//以二進制數(shù)讀入,讀取成功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);//以十六進制數(shù)讀入
 
    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);//以八進制數(shù)讀入
 
    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));
}

 好啦,到這里,代碼就結束啦,是不是感覺很簡單?!

最后附上源碼,親測可運行,如果你在運行時,出現(xiàn)問題,可以留言。

.pro 文件源碼

QT       += core gui
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
CONFIG += c++11
 
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
 
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
SOURCES += \
    main.cpp \
    mainwindow.cpp
 
HEADERS += \
    mainwindow.h
 
FORMS += \
    mainwindow.ui
 
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

頭文件.h源碼

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
 
private slots:
 
    void on_btn1_clicked();
 
    void on_btn2_clicked();
 
    void on_btn3_clicked();
 
    void on_btn4_clicked();
 
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

main.cpp源碼

#include "mainwindow.h"
 
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

.cpp源碼

#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進制數(shù)
 
    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);//以二進制數(shù)讀入,讀取成功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);//以十六進制數(shù)讀入
 
    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);//以八進制數(shù)讀入
 
    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));
}

運行后的界面如下:

 到此這篇關于QT實現(xiàn)二、八、十六進制之間的轉換的文章就介紹到這了,更多相關QT進制轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • ACE反應器(Reactor)模式的深入分析

    ACE反應器(Reactor)模式的深入分析

    本篇文章是對ACE反應器(Reactor)模式進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Qt Design Studio創(chuàng)建工程的實現(xiàn)方法

    Qt Design Studio創(chuàng)建工程的實現(xiàn)方法

    Qt Design Studio它允許設計人員和開發(fā)人員使用通用的設計、開發(fā)、分析和調試工具在不同的開發(fā)平臺上共享一個項目,本文主要介紹了Qt Design Studio創(chuàng)建工程的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • VScode platformio使用的詳細步驟

    VScode platformio使用的詳細步驟

    使用VSCode作為編輯器,同時借助PlatformIO插件,可以幫助開發(fā)者更加高效地進行嵌入式開發(fā),本文主要介紹了VScode platformio使用的詳細步驟,感興趣的可以了解一下
    2023-10-10
  • C++11新特性之右值引用與完美轉發(fā)詳解

    C++11新特性之右值引用與完美轉發(fā)詳解

    C++11標準為C++引入右值引用語法的同時,還解決了一個短板,即使用簡單的方式即可在函數(shù)模板中實現(xiàn)參數(shù)的完美轉發(fā)。本文就來講講二者的應用,需要的可以參考一下
    2022-09-09
  • QT網(wǎng)絡編程Tcp下C/S架構的即時通信實例

    QT網(wǎng)絡編程Tcp下C/S架構的即時通信實例

    下面小編就為大家?guī)硪黄猀T網(wǎng)絡編程Tcp下C/S架構的即時通信實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • C語言字符串函數(shù)模擬實現(xiàn)流程介紹

    C語言字符串函數(shù)模擬實現(xiàn)流程介紹

    字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語言中用來進行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進行字符串拷貝,計算長度,字符查找等的函數(shù)
    2022-09-09
  • C語言斷言函數(shù)assert()的學習筆記

    C語言斷言函數(shù)assert()的學習筆記

    在C語言庫函數(shù)中提供了一個輔助調試程序的小型庫,它是由assert()宏組成,本文就詳細的介紹了一下如何使用,感興趣的可以了解一下
    2021-11-11
  • C++?JSON庫?nlohmann::basic_json::accept的用法解析

    C++?JSON庫?nlohmann::basic_json::accept的用法解析

    nlohmann::basic_json::accept 是 Nlohmann JSON 庫中的一個方法,它用于檢查一個字符串是否可以解析為有效的 JSON,這篇文章主要介紹了C++?JSON庫nlohmann::basic_json::accept的用法,需要的朋友可以參考下
    2023-06-06
  • C++學校運動會管理系統(tǒng)的實現(xiàn)

    C++學校運動會管理系統(tǒng)的實現(xiàn)

    這篇文章主要為大家詳細介紹了C++如何實現(xiàn)學校運動會管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解C++中的函數(shù)調用和下標以及成員訪問運算符的重載

    詳解C++中的函數(shù)調用和下標以及成員訪問運算符的重載

    這篇文章主要介紹了詳解C++中的函數(shù)調用和下標以及成員訪問運算符,講到了這些二元運算符使用的語法及重載,需要的朋友可以參考下
    2016-01-01

最新評論