Bootstrap

Qt 之 进制/字符串常见转换

1、将二进制字符串转成十进制

int MainWindow::BinToDec(QString strBin)
{
    int j = 1, value = 0;
    int len = strBin.length();
    for(int i = 0 ; i<len;i++){
        value +=strBin.mid(len-1-i,1).toInt()*j;
        j *= 2;
    }
    return value;
}

2、将十六进制字符串转成二进制字符串

QString MainWindow::ProcessHEXData(QString hexMessage)
{
    bool OK;
    int val = hexMessage.toInt(&OK,16);//十六进制读取
    hexMessage = hexMessage.setNum(val,2);//显示为2进制
    return hexMessage;
}

3、字符串转整形

( 1)QString转int

直接调用toInt()函数

例:

QString str("100");

int tmp = str.toInt();
或者:

bool ok;

QString str("100");

int tmp = str.toInt(&ok);

注:ok表示转换是否成功,成功则ok为true,失败则ok为false

4、int转QString

2int转QString

QString::number();

例:

int tmp = 100;

QString str = QString::number(tmp);

5、QString转int

    int numberstr = strnumber.toInt();
    qDebug()<<"numberstr:"<<numberstr;

6、QString 转 QByteArray

    QByteArray bastr = strba.toLatin1();
    qDebug()<<"bastr:"<<bastr;

7、QByteArray转 QString

    QByteArray ba = "asdasd";
    QString strba = QString(ba);
    qDebug()<<"strba:"<<strba;
;