Le code suivant compile avec le warning "comparison of promoted ~unsigned
with unsigned" et la condition a != ~b est vraie car b semble converti en
unsigned int avant l'application du ~.
> #include <iostream>
>
> int main()
> {
> unsigned char a = 0xFF, b = 0x00;
> if(a != ~b)
> std::cout << "etrange pour moi";
> return 0;
> }
Comment doit-on écrire ça en C++ ? Suis obligé de faire un truc du genre
> #include <iostream>
>
> int main()
> {
> unsigned char a = 0xFF, b = 0x00;
> if(a != ((~b)&0xFF))
> std::cout << "etrange pour moi";
> return 0;
> }
Pour les curieux : dans un programme qui communique avec un montage
électronique, j'ai une fonction de "ping" qui vérifie que le montage est
bien connecté au PC. Cette fonction envoit quelques octets au montage qui
les renvoit inversés. Je cherche à vérifier que ce que je reçoit
correspond à ce que j'ai envoyé.
Bonne fin de soirée,
--
Vincent Jacques
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème."
Devise Shadok