Savoir si un nombre est pair ou impair

0/5 (9 avis)

Snippet vu 37 098 fois - Téléchargée 73 fois

Contenu du snippet

xIsEven test si un nombre est pair, xIsOdd test si un nombre est impair.

Source / Exemple :


'***********************************************************************************************************
' Name       : xIsEven
' Purpose    : Test if a number is even.
' Syntax     : xIsEven(Number)
' Parameters : Number : Number to be tested
' Return     : True or False
'***********************************************************************************************************
Public Function xIsEven(ByVal Number As Long) As Boolean
    xIsEven = Not -(Number And 1)
End Function

'***********************************************************************************************************
' Name       : xIsOdd
' Purpose    : Test if a number is odd.
' Syntax     : xIsOdd(Number)
' Parameters : Number : Number to be tested
' Return     : True or False
'***********************************************************************************************************
Public Function xIsOdd(ByVal Number As Long) As Boolean
    xIsOdd = -(Number And 1)
End Function

A voir également

Ajouter un commentaire Commentaires
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
28 févr. 2005 à 15:43
Comment ça de 10% ???
AND est une operation binaire en 1 cycle !!! alors que le modulo est une division qui emploie au bas mot de 16 à 20 cycles processeur.
Alors qu'il suffit de tester le bit 0 pour savoir si un nombre est impair, on ne va tout de même pas aller faire une division, ce serait du délire complet.

If nbr And 1 Then IMPAIR
Else PAIR
loskiller62 Messages postés 135 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 juillet 2006 1
28 févr. 2005 à 15:21
C'est bien ce que je pensais. Le And utilisé par Mr X est une fonction de plus bas niveau que le Mod. et est donc plus efficace.
Après tests sur des valeurs aléatoires on peut constater que la fonction de Mr X est 10% plus rapide que la fonction utilisant le Mod.
Vu que je travaille sur de grosses analyses vous ne m'en voudrez donc pas de préférer la solution de Mr X :o)
Bravo à toi! 8/10
Arecibo Messages postés 124 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 30 juillet 2003
1 juin 2003 à 15:02
Je vais peut être répeter ce qu'ont dit les autres mais un simple Mod 2 suffit...
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
12 mai 2002 à 15:17
Je suis tout a fait d'accord avec Wardall
Franchement je vois pas l'interet de faire des function pour ce genre de truc.
Mod 2 suffit amplement ...
Mais bon on vit dans une societe libre ( ca reste a prouver ...)
Evitez ce genre de source SVP c'est trop simple ...
The @rchivist
19 mars 2001 à 08:09
J'utilise déjà la même fonction que sub-zero avec différents language et je crois qu'il n'y a pas mieux !!! Pour Emonnier, MOD renvoie le reste de la division, c'est tout
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.