美文网首页
QT常用进制转换

QT常用进制转换

作者: hao_developer | 来源:发表于2023-02-24 16:48 被阅读0次

转换10进制

QString strHex = "0x01";
bool ok;
strHex.toInt(&ok, 16);

转换十六进制

//方法1、   
int n1=this->ui->speed->text().toInt();
QString hex=QString("%1").arg(n1,4,16);//加上QLatin1Char('0'),不足补0

//方法2、
int n1=this->ui->speed->text().toInt(); 
QString a=QString::number(n1,16);

//方法3、    
uchar speedBuf[]={0};
QString str =this->ui->speed->text();//获取发送的信息        
QString hex = QString("%1").arg(str.toInt(), 4,16,QLatin1Char('0'));//不足补0
uchar u1 = uchar(hex.left(2).toInt(nullptr,16));//前两位
uchar u2 = uchar(hex.right(2).toInt(nullptr,16));//后两位
speedBuf[3]=u2;

16进制字符串转字节数组

    static QByteArray HexStrToByteArray(QString str) {
        QByteArray senddata;
        int hexdata, lowhexdata;
        int hexdatalen = 0;
        int len = str.length();
        senddata.resize(len / 2);
        char lstr, hstr;
        for (int i = 0; i < len; ) {
            hstr = str[i].toLatin1();
            if (hstr == ' ') {
                i++;
                continue;
            }
            i++;
            if (i >= len) {
                break;
            }
            lstr = str[i].toLatin1();
            hexdata = ConvertHexChar(hstr);
            lowhexdata = ConvertHexChar(lstr);
            if ((hexdata == 16) || (lowhexdata == 16)) {
                break;
            } else {
                hexdata = hexdata * 16 + lowhexdata;
            }
            i++;
            senddata[hexdatalen] = (char)hexdata;
            hexdatalen++;
        }
        senddata.resize(hexdatalen);
        return senddata;
    }

    static char ConvertHexChar(char ch) {
        if ((ch >= '0') && (ch <= '9')) {
            return ch - 0x30;
        } else if ((ch >= 'A') && (ch <= 'F')) {
            return ch - 'A' + 10;
        } else if ((ch >= 'a') && (ch <= 'f')) {
            return ch - 'a' + 10;
        } else {
            return (-1);
        }
    }

字节数组转16进制字符串

    static QString ByteArrayToHexStr(QByteArray data) {
        QString temp = "";
        QString hex = data.toHex();
        for (int i = 0; i < hex.length(); i = i + 2) {
            temp += hex.mid(i, 2) + " ";
        }
        return temp.trimmed().toUpper();
    }

10进制字符串转10进制

    static int StrDecimalToDecimal(QString strDecimal) {
        bool ok;
        return strDecimal.toInt(&ok, 10);
    }

2进制字符串转10进制

    static int StrBinToDecimal(QString strBin) {
        bool ok;
        return strBin.toInt(&ok, 2);
    }

16进制字符串转2进制字符串

    static QString StrHexToStrBin(QString strHex) {
        uchar decimal = StrHexToDecimal(strHex);
        QString bin = QString::number(decimal, 2);
        uchar len = bin.length();
        if (len < 8) {
            for (int i = 0; i < 8 - len; i++) {
                bin = "0" + bin;
            }
        }
        return bin;
    }

10进制转2进制字符串一个字节

    static QString DecimalToStrBin1(int decimal) {
        QString bin = QString::number(decimal, 2);
        uchar len = bin.length();
        if (len <= 8) {
            for (int i = 0; i < 8 - len; i++) {
                bin = "0" + bin;
            }
        }
        return bin;
    }

10进制转2进制字符串两个字节

    static QString DecimalToStrBin2(int decimal) {
        QString bin = QString::number(decimal, 2);
        uchar len = bin.length();
        if (len <= 16) {
            for (int i = 0; i < 16 - len; i++) {
                bin = "0" + bin;
            }
        }
        return bin;
    }

10进制转16进制字符串,补零.

    static QString DecimalToStrHex(int decimal) {
        QString temp = QString::number(decimal, 16);
        if (temp.length() == 1) {
            temp = "0" + temp;
        }
        return temp;
}

相关文章

  • iOS开发中的进制转换

    进制转换 开发中常用的进制有二进制、十进制、十六进制,此文章旨在说明进制转换的规则、流程;最后用OC写了进制转换的...

  • 各个进制的转换

    各个进制转换成十进制 十进制转换成二进制 二进制转换成八进制 / 十六进制 常用的一些2的幂的值

  • Java 数据类型 类型转换 运算符

    常用的进制二进制八进制十进制十六进制进制之间是可以互相转换的。 进制如何转换 以二进制和十进制进制为例10 -> ...

  • java——进制

    进制转换 10进制十进制(逢10进1)是我们最常用的一种数位进制方式。 10进制和2进制可以相互转换,举例如下: ...

  • 基于C++实现各种进制间的转换

    酷黑窗体风格的VC++进制转换程序,实现大家各种常用进制间的转换,比如十进制转二进制,八进制、十六进制,还包括了任...

  • 计算机常用的进制及相互转换

    计算机常用的进制及相互转换 今日内容 进制由来 生活中常用进制 计算机中的二进制 计算机中四种常用进制的说明 八进...

  • 详细介绍计算机常用进制及相互转换且带例题

    计算机常用进制及进制之间的转换 进制的由来 生活中常用的进制 计算机中的二进制 四种的进制的介绍 八进制和十六进制...

  • Qt开发经验小技巧241-245

    QString类是我个人认为Qt所有类中的精华,封装的无可挑剔。内置了各种进制数据的转换,比如将数据转成10进制、...

  • 面试-多玩

    笔试题目:1、二进制、八进制、十六进制、十进制之间的转换;2、写出常用的网络协议;3、写出常用的数据库;4、C语言...

  • Qt 常用类型转换

    QString 转 BSTR BSTR 转 QString LPCWSTR 转 QString QString 转...

网友评论

      本文标题:QT常用进制转换

      本文链接:https://www.haomeiwen.com/subject/kkyxldtx.html