Conversion d'un QByteArray en qint16
Bonjour,
Alors je sais que c'est un problème qui semble récurrent et déjà traité ici.
Mais après avoir testé plusieurs solutions par ci par là j'avoue que je sèche (et commence légèrement à craquer!!)
Méthode 1 :
Code:
1 2 3 4
|
qint16 x = response->at(index); //me donne fffa
x = x << 8; //me donne fa00
x |= qint8(response->at(index+1)); //devrait me donner fabf mais j'ai f9bf!! |
Echec total, le logiciel fait une addition!! Mais je veux juste concatener!!
Méthode 2:
Code:
1 2 3 4
|
int y = int(response->at(index))<<8;
int z = int(response->at(index+1));
qint16 res = y + z; |
Nouvel échec, le résultat est identique à la méthode 1.
Méthode 3:
Code:
qint16 res = temp.toInt();
Là le retour est simple j'ai 0, mais bon cela suit la logique car j'utilise des RAW DATA.
Méthode 4:
Code:
qint16 res = *((qint16*) temp.constData()); // temp étant un QByteArray contenant fa bf
Là cela fonctionne presque sauf que j'ai bffa !!! Hors j'avoue galérer avec le little/big indian et j'aimerai passer outre cette problèmatique...
Quelqu'un pourrait il m'aider?
Merci.