QString与16进制数互相转换

先以16进制为例,做QString与int之间的转换:

QString转int:

QString hexstr = "0xFF"
bool ok;
int hexnum = hexstr.toInt(&ok,16); // 表示以16进制方式读取字符串
qDebug()<

输出255

int转16进制字符串QString:

int hexnum = 255;
QString hexstr = QString::number(hexnum,16);//表示转换成16进制存入字符串
qDebug()<

输出:ff

QString中,涉及到类型转换的函数如下:

    short  toShort(bool *ok=nullptr, int base=10) const;
    ushort toUShort(bool *ok=nullptr, int base=10) const;
    int toInt(bool *ok=nullptr, int base=10) const;
    uint toUInt(bool *ok=nullptr, int base=10) const;
    long toLong(bool *ok=nullptr, int base=10) const;
    ulong toULong(bool *ok=nullptr, int base=10) const;
    qlonglong toLongLong(bool *ok=nullptr, int base=10) const;
    qulonglong toULongLong(bool *ok=nullptr, int base=10) const;
    float toFloat(bool *ok=nullptr) const;
    double toDouble(bool *ok=nullptr) const;

以及

    static QString number(int, int base=10);
    static QString number(uint, int base=10);
    static QString number(long, int base=10);
    static QString number(ulong, int base=10);
    static QString number(qlonglong, int base=10);
    static QString number(qulonglong, int base=10);
    static QString number(double, char f='g', int prec=6);

其中的base便是设置转换方式以n进制为标准,默认为10进制。

你可能感兴趣的:(Qt)