Qt: Convertir QString en Hexadécimal
Je sais que c'est une question très simple mais je suis débutant en Qt et je ne sais pas le faire. Je suis en train de convertir un QString (comme "AA110011") en hexadécimal. Je voudrais obtenir des 0xaa110011. J'ai essayé avec ce code:
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;
}
}
- Je obtenir dans la Mémoire à Vairable "[0]" la valeur 0a 0a 01 01 00 00 01 01 et je ne sais pas comment pourrais-je obtenir aa 11 00 11.
Pourriez-vous m'aider? merci.
Est-il une raison pour laquelle vous n'utilisez pas
int QString::toInt(bool * ok = 0, int base = 10) const
?int value = QString("AA110011").toInt(NULL, 16);
en plus de mah. Si vous avez besoin d'elle comme "char*" juste transtypage: char c[4-i] = (char) ((value >> i*8) & 0xFF)
OriginalL'auteur Jafuentes | 2013-07-15
Vous devez vous connecter pour publier un commentaire.
Essayer QString::toInt, QString::toUInt, QString::toLong etc., par exemple:
Le deuxième argument est la base, 16 dans ce cas pour hexadécimal.
Cette solution ne fonctionnera que si votre chaîne s'inscrit dans un unsigned long long ou plus court, il ne fonctionnera pas si vous voulez convertir arbitrairement longues chaînes de cette façon.
OriginalL'auteur Frank Osterfeld
Une fois que vous avez un QString vous pouvez effectuer les opérations suivantes
référence
Sous quelle forme tu veux un numéro? Vous pouvez convertir un nombre en chaîne de caractères en utilisant setNum(decimalNumber ,16) de la méthode et de la même manière, vous pouvez obtenir n'importe quelle base dans la forme de string, mais il n'y a pas de type de données pour les valeurs hexadécimales dans QT que je sache
OriginalL'auteur Sanyam Goel
Il suffit d'utiliser cette et me remercier plus tard.
OriginalL'auteur Jimit Rupani