Ich weiß, das ist eine sehr grundlegende Frage, aber ich bin Neuling in Qt und ich weiß es nicht zu tun. Ich versuche, einen QString-Wert (wie "AA110011") in Hexadezimal zu konvertieren. Ich möchte 0xaa110011 erhalten. Ich habe mit diesem Code versucht:Qt: QString in Hexadezimal konvertieren
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;
}
}
ich im Gedächtnis an vairable "[0]" der Wert 0a 0a 01 01 00 00 01 01 erhalten, und ich weiß nicht, wie konnte ich aa 11 00 erhalten 11.
Können Sie mir helfen? Vielen Dank. .
Gibt es einen Grund, warum Sie nicht 'int QString :: toInt (bool * ok = 0, int base = 10) const 'verwenden? – mah
'' int value = QString ("AA110011"). ToInt (NULL, 16); '' zusätzlich zu mah. Wenn Sie es als "char *" nur Typcast benötigen: '' char c [4-i] = (char) ((Wert >> i * 8) & 0xFF) '' –