[英]Qt: Convert QString to Hexadecimal
我知道這是一個非常基本的問題,但我是 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;
}
}
我在內存變量“[0]”中獲得了值 0a 0a 01 01 00 00 01 01,但我不知道如何獲得 aa 11 00 11。
你能幫我嗎? 謝謝。
嘗試的QString :: toInt , QString的:: toUInt , QString的:: toLong等,例如:
const QString str = QLatin1String("AA110011");
bool ok;
const unsigned int parsedValue = str.toUInt(&ok, 16);
if (!ok) {
//Parsing failed, handle error here
}
qDebug() << parsedValue;
第二個參數是基數,在這種情況下是十六進制的 16。
如果您的字符串適合 unsigned long long 或更短的字符串,則此解決方案將起作用 - 如果您想以這種方式轉換任意長的字符串,則該解決方案將不起作用。
只需使用它,稍后再感謝我。
QString prgName = query.value(1).toString();
prgName.toLatin1().toHex();
QByteArray a = QByteArray::fromHex(s.toLatin1())
qDebug() << a;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.