Savoir si un nombre est pair ou impair

Soyez le premier à donner votre avis sur cette source.

Snippet vu 35 016 fois - Téléchargée 72 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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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
Messages postés
135
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 juillet 2006
1
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
Messages postés
124
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
30 juillet 2003

Je vais peut être répeter ce qu'ont dit les autres mais un simple Mod 2 suffit...
Messages postés
367
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010

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 ...

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.