Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:将QString转换为十六进制_C++_Qt - Fatal编程技术网

C++ Qt:将QString转换为十六进制

C++ Qt:将QString转换为十六进制,c++,qt,C++,Qt,我知道这是一个非常基本的问题,但我是Qt的新手,不知道该怎么做。我正在尝试将QString值(如“AA110011”)转换为十六进制。我想获得0xaa110011。我已尝试使用以下代码: QByteArray b = aString.toUtf8(); for (int i = 0; i < b.length(); i++ ) { if ( b[i] >= 65 && b[i] <= 70 ) { b[i] = b[i] - 5

我知道这是一个非常基本的问题,但我是Qt的新手,不知道该怎么做。我正在尝试将QString值(如“AA110011”)转换为十六进制。我想获得0xaa110011。我已尝试使用以下代码:

QByteArray b = aString.toUtf8();

for (int i = 0; i < b.length(); i++ )
{
    if ( b[i] >= 65 && b[i] <= 70 )
    {
        b[i] = b[i] - 55;
    }
    else if (b[i] >= 48 && b[i] <= 57)
    {
        b[i] = b[i] - 48;
    }
}
QByteArray b=aString.toUtf8();
对于(int i=0;i如果(b[i]>=65&&b[i]=48&&b[i]一旦你有了一个QString,你就可以做以下事情

QString res = string.toAscii().toHex();
qDebug() << res;
QString res=string.toAscii().toHex();
qDebug()尝试,等等,例如:

const QString str = QLatin1String("AA110011");
bool ok;
const unsigned int parsedValue = str.toUInt(&ok, 16);
if (!ok) {
    //Parsing failed, handle error here
}

qDebug() << parsedValue;
const QString str=QLatin1String(“AA110011”);
布尔ok;
const unsigned int parsedValue=str.toUInt(&ok,16);
如果(!ok){
//解析失败,请在此处处理错误
}

qDebug()用这个,以后谢谢我

 QString prgName = query.value(1).toString();
 prgName.toLatin1().toHex();
使用

QByteArray a=QByteArray::fromHex(s.toLatin1())

qDebug()除了mah之外,你不使用
int-QString::toInt(bool*ok=0,int-base=10)const
int-value=QString(“AA110011”).toInt(NULL,16);
还有什么原因吗?如果你需要它作为“char*”只需类型转换:
char c[4-i]=(char)((value>>i*8)&0xFF)
返回ASCII编码字符串内容的十六进制值,而不是数字。您想要数字的形式是什么?您可以使用setNum(decimalNumber,16)方法将数字转换为字符串,类似地,您可以以字符串的形式获得任何基,但据我所知,QT中没有单独的十六进制数据类型
QByteArray a = QByteArray::fromHex(s.toLatin1())
qDebug() << a;