AND
Resultat = Expression AND Expression
Selon l’expression, l’opération AND (ET) peut être un ET logique ou numérique.
Dans le cas de deux expressions booléennes, une opération ET logique est effectuée. Dans le cas de deux valeurs entières, c’est une opération ET numérique.
Les chaînes et les objets sont convertis automatiquement en booléens.
Une chaîne nulle ou un objet nul est converti en
FALSE
, d'autres valeurs sont converties en
TRUE
.
Depuis 3.17
Si un des opérandes est un flottant, une erreur est levée.
Avant Gambas 3.17, les flottants sont convertis silencieusement, ce qui conduit à un résultat inutile.
L'opérateur ET logique confronte deux expressions booléennes et retourne une valeur True (vrai) ou False (faux). Le résultat renvoyé par cet opérateur obéit à la table suivante :
A
|
B
|
A AND B
|
FALSE
|
FALSE
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
TRUE
|
L’opérateur ET numérique confronte deux valeurs entières et retourne une valeur entière. Chaque bit correspondant des valeurs spécifiées est combiné selon la table qui suit :
A
|
B
|
A AND B
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
L’opérateur ET numérique peut être utilisé pour tester le motif des bits d’un nombre. Il peut aussi être employé pour masquer des bits sélectionnés dans un nombre. La table suivante donne quelques exemples de la façon dont l’opérateur ET agit sur deux nombres entiers :
Expression
|
Explication
|
10 And 20 = 0
|
10 = binary 01010
20 = binary 10100
Donc 10 And 20 = 0
|
10 And -20 = 8
|
10 = binary 00000000000000000000000000001010
-20 = binary 11111111111111111111111111101100
Donc 10 And -20 = 8 (binary 1000)
|
20 And -20 = 4
|
20 = binary 00000000000000000000000000010100
-20 = binary 11111111111111111111111111101100
Donc 20 And -20 = 4 (binary 100)
|
Exemples
Print TRUE And FALSE
Print TRUE And TRUE
Print 7, Bin(7, 16)
Print 11, Bin(11, 16)
Print 7 And 11, Bin(7 And 11, 16)
7 0000000000000111
11 0000000000001011
3 0000000000000011
Dim A,B As Boolean
A = 10 < 20
B = 20 > 30
If A And B Then
Print " A et B sont tous deux VRAIS"
Else
Print "Soit A soit B soit tous les deux sont FAUX "
Endif
Soit A soit B soit tous les deux sont FAUX
Voir aussi