Affichage étrange de données hexa contenues dans un buffer [Résolu] - C - Programmation
Marsh Posté le 26-07-2006 à 15:33:24
Merci pour ta réponse, a première vu ca à résolu mon problème !
Je ne comprend par pas pourquoi le problème ne se posait que sur le premier et le dernier caractère ... Ils sont codés différemment ?
Marsh Posté le 26-07-2006 à 15:36:11
Non, mais ils dépassent la plage d'utilisation d'un char signé (un type est signé par défaut, sauf si "unsigned" est précisé).
signed char : -127 127
unsigned char : 0 255
(plage d'utilisation minimum définie par la norme)
Hex => Dec
0xAA => 170
0xCC => 204
D'où problème quand tu utilises des signed char.
Marsh Posté le 26-07-2006 à 15:51:55
Reply
Marsh Posté le 26-07-2006 à 14:51:35
Bonjour tous le monde !
Je suis entrain de faire une application en C permettant la communication avec un GPS Bluetooth (j'utilise le port serie virtuel), et j'ai un soucis quand je cherche à afficher ou traiter les données que je recois.
Voila un bout de code qui explique le problème :
Je recois la trame suivante : 0xAA,0x55,0x02,0x00,0x47,0x00,0x47,0x33,0xCC (je verifie en direct sur un sniffer)
et le programme affiche le texte suivant :
9 octets lus
FFFFFFAA55020047004733FFFFFFCC
0xAA -> KO
0x55 -> OK
0xCC -> KO
Le compilateur gueule un peu aussi sur les comparaisons sur le premier et le dernier octets :
[Warning] comparison is always false due to limited range of data type
Donc apparemment le premier et le dernier octet posent problème, une explication ? Pourquoi le premier et le dernier et pas les autres ??
Merci d'avance !
Message édité par ThibB le 26-07-2006 à 15:59:08
---------------
Visiter mon site