GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 08 Novembre 2010, 17:29:37

Titre: Comment savoir si un nombre est pair ou impair
Posté par: scott1 le 08 Novembre 2010, 17:29:37
Bonjour à toutes et à tous,

existe t il une fonction samp pour savoir si un nombre est pair ou non.

Merci d'avance
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: S!m le 08 Novembre 2010, 19:14:44
Salut,

tu peut simplement faire ceci:

if(valeur & 1)
le bit correspondant à 1 est le seul qui soit "impair", les autres sont tous pairs (2, 4, 8, 16 ...)

++Sim++
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Ssk le 08 Novembre 2010, 19:18:15
ou bien

if( valeur % 2 == 0 )
{
 // Pair
}
else
{
 // Impair
}
Titre: Re : Re : Comment savoir si un nombre est pair ou impair
Posté par: Mr_C30 le 08 Novembre 2010, 19:20:51
ou bien

if( valeur % 2 == 0 )
{
 // Pair
}
else
{
 // Impair
}

heu tu est sur ? Oo

++C30
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Ssk le 08 Novembre 2010, 19:48:35
Bah oui tout les nombre pari sont divisible par 2 sans avoir de reste =)
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Mr_C30 le 08 Novembre 2010, 20:00:45
mais sa donne le reste ? je pensait que sa nous donnée le résultat de la divisons ^^

++C30
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: S!m le 09 Novembre 2010, 03:43:39
Salut,

le résultat de la division:
résultat = valeur / diviseur;
Reste de la division:

résultat = valeur % diviseur;
NB. Le code que j'ai donné est plus rapide que le modulo (reste de la division) car il s'agit d'une simple opération sur un bit, donc très rapide. Le modulo sous entend l'exécution d'une division qui est beaucoup plus complexe. Toutefois, pour un petit volume de calcul, la différence n'est pas visible.

++Sim++
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Mr_C30 le 09 Novembre 2010, 05:50:04
Merci sim :)
comme quoi on en apprend tous les jours ^^

++C30
Titre: Re : Re : Comment savoir si un nombre est pair ou impair
Posté par: scott1 le 09 Novembre 2010, 11:06:46
Salut,

tu peut simplement faire ceci:

if(valeur & 1)
le bit correspondant à 1 est le seul qui soit "impair", les autres sont tous pairs (2, 4, 8, 16 ...)

++Sim++

Ceci est donc le mieux, mais peut tu m'expliquer ce que ça fait concretement? Pour eviter un bete copier collé
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Syg le 09 Novembre 2010, 11:26:21
En base 10, tous les nombres multiples de 10 finissent par un 0.
En base 2, tous les nombres multiples de 2 finissent par un 0.
NB : Plus généralement, en base X, tous les nombres multiples de X finissent par un 0.

Donc en base 2 (binaire), les nombres pairs (multiples de 2) se termine par un 0 (dernier bit du nombre).

L'expression valeur & 1 (comparaison bit à bit) permet de comparer le dernier bit de la variable valeur à 1.
Si ce bit est à 1, valeur & 1 vaut 1.
Si ce bit est à 0, valeur & 1 vaut 0 ce qui indique que valeur est pair.

++
Syg
Titre: Re : Comment savoir si un nombre est pair ou impair
Posté par: Ssk le 09 Novembre 2010, 11:34:14
Voila un joli tableau vous montrant que tout les nombres pair ont le premier bit ( Celui qui est à droite ) à 0.


(http://techno-science.net/illustration/Multimedia/Compression_images/Img/Tableau2.jpg)
Titre: Re : Re : Comment savoir si un nombre est pair ou impair
Posté par: Syg le 09 Novembre 2010, 14:46:07
Voila un joli tableau vous montrant que tout les nombres pair ont le premier bit ( Celui qui est à droite ) à 0.
Le bit le plus à droite est considéré comme le dernier bit, comme dans un nombre, le chiffre le plus à droite est considéré comme le dernier chiffre.
Les bits situés à droite d'un nombre binaire sont appelés bits de poids faible (bits les moins significatifs). Les autres bits (ceux de gauche) sont appelé bits de poids fort (bits les plus significatifs).

++
Syg