Bonjour tout le monde, j'aimerai avoir un petit renseignement. Je ne sais pas comment on fait pour vérifier q'un nombre est pair ou impair, alors si quelqu'un pouvait me renseigner, ça m'aiderait beaucoup. Merci d"avance.![]()
Bonjour tout le monde, j'aimerai avoir un petit renseignement. Je ne sais pas comment on fait pour vérifier q'un nombre est pair ou impair, alors si quelqu'un pouvait me renseigner, ça m'aiderait beaucoup. Merci d"avance.![]()
tu peux essaye de faire le modulo 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ( (i % 2) == 0) { // nbre pair } else { // nbre impair }
si vous y tenez, voici une solution avec mask (the most + rapide) et une solution avec décalages qu'est un peu compliqué pour ce que c'est faire !
mask :
décalages :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if ( number & 1) { prinff ( "%d est impaire\n", number); } else { prinff ( "%d est paire\n", number); }
Pour devenir bon en C, lire les tutoriels et cours pour apprendre la programmation en langage C : http://c.developpez.com/cours/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (((number >> 1)<<1) != number) /* avouez que c'est pas cool ! */ { prinff ( "%d est impaire\n", number); } else { prinff ( "%d est paire\n", number); }
- x % 2 renvoie x modulo 2, ça marche pour tous les types entiers (short,int,long), mais pas pour les réels : faut utiliser modf (ou fmod, je sais jamais lequel).
- "x % 2" est équivalant à "x & 1" pour les types entiers signés ou non, mais pas les types réels (pour lesquels il faut utiliser fmod/mof).
@+ Haypo
ceci dit, le système du mask est qand même beaucoup plus rapide à l'exécution car il ne nécessite pas de faire la division.
je sais, je sais on voit pas la différence et en plus c'est moins lisible, mais bon on sait jamais ... si c'est un point critique qui doit être exécuté beaucoup de fois, un bon commentaire fera l'affaire
au fait, je crois qu'on peu aussi le faire avec un mask pour les réels, mais ça demande de faire un décalage en fonction de l'emplacement de la virgule et donc de connaitre parfaitement la représentation des réels par le langage (ça c'est pas pour moi)
Pour mieux te former : les cours et tutoriels pour bien apprendre la programmation en langage C : http://c.developpez.com/cours/ et aussi voir les cours et tutoriels pour apprendre Arduino
Partager