Aide sur les api c++
Résolu/Fermé
chabacha109
Messages postés
268
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
14 mai 2012
-
Modifié par chabacha109 le 5/02/2011 à 18:48
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 - 15 févr. 2011 à 12:57
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 - 15 févr. 2011 à 12:57
1 réponse
Bonjour,
Pas la peine de faire un nouveau post, j'allais te répondre sur l'ancien.
La valeur en sortie de ta fonction est un short signé.
Le short est sur deux octets (2 fois 8 bits), et le premier bit est le signe.
Le bit de poids fort est celui qui a la plus grande valeur (donc celui de gauche), et donc celui de poids faible est celui de droite.
Ici, tu as recopié "-32767" sans chercher à comprendre. Mais tu aurais dû chercher à comprendre et remarquer que -32767 c'est la valeur binaire 11111111 11111111.
Donc pour tester le bit de poids fort, il faut tester la valeur 11111111 00000000.
Et pour tester le bit de poids faible, il faut tester la valeur 00000000 11111111.
A l'aide d'une simple calculatrice windows, tu convertis ces valeurs binaires en short signé :
Bit de poids fort = -32512
Bit de poids faible = 255
Concernant la différence entre les deux versions de ton code ;
La première version est GetAsyncKeyState(i)==-32767
Et la deuxième, sans mettre de 'condition explicite' revient à faire GetAsyncKeyState(i)!=0
Cordialement, M.
Pas la peine de faire un nouveau post, j'allais te répondre sur l'ancien.
La valeur en sortie de ta fonction est un short signé.
Le short est sur deux octets (2 fois 8 bits), et le premier bit est le signe.
Le bit de poids fort est celui qui a la plus grande valeur (donc celui de gauche), et donc celui de poids faible est celui de droite.
Ici, tu as recopié "-32767" sans chercher à comprendre. Mais tu aurais dû chercher à comprendre et remarquer que -32767 c'est la valeur binaire 11111111 11111111.
Donc pour tester le bit de poids fort, il faut tester la valeur 11111111 00000000.
Et pour tester le bit de poids faible, il faut tester la valeur 00000000 11111111.
A l'aide d'une simple calculatrice windows, tu convertis ces valeurs binaires en short signé :
Bit de poids fort = -32512
Bit de poids faible = 255
Concernant la différence entre les deux versions de ton code ;
La première version est GetAsyncKeyState(i)==-32767
Et la deuxième, sans mettre de 'condition explicite' revient à faire GetAsyncKeyState(i)!=0
Cordialement, M.
15 févr. 2011 à 12:57