AND est un ET logique (binaire). Il vous faut être familiarisé avec les nombres binaires pour utiliser cet opérateur. Le résultat de cet opérateur est le résultat d'un ET logique entre les valeurs des expressions LHS et RHS, bit à bit. La valeur de chaque bit résultant est fixée comme indiqué dans la table ci-dessous. De plus, si le résultat de l'opérateur n'est pas utilisé et qu'il y a une variable LHS, alors le résultat sera directement stocké dans cette variable. Cet opérateur ne peut être utilisé avec une variable de type chaine.
LHS | RHS |Résultat
------------------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
Exemple:
; La représentation binaire des valeurs est utilisée pour une présentation plus claire et lisible
a.w = %1000 & %0101 ; Le résultat sera 0
b.w = %1100 & %1010 ; Le résutlat sera %1000
bits = a & b ; Effectue un ET bit à bit entre a et b et utilise le résultat avec l'opérateur =
a & b ; Effectue un ET bit à bit entre a et b et place le résultat directement dans la variable "a"
Voici ce que dit la doc , que veux-tu savoir de plus ?
Bon ok , ça c'est pour le fonctionnement
alors à quoi ça peut servir ?
ça peut servir à faire des masques, par exemple :
dans le mode 16 bits les couleurs sont codées dans un word (16 bits )
bits 1 à 5 pour le bleu
Bits 6 à 11 pour le vert
Bits 12 à 16 pour le rouge
Une fois que tu as lu le word , comment isoler la couleur bleue?
avec un masque %0000 0000 0001 1111 ( on met les 5 bits qui correspondent au bleu à 1 et les autres à 0)
et ensuite tu appliques un ET logique entre le word qui représente la couleur et ton masque , le résultat te donnera la couleur bleue
admettons que le word soit
%1101 1001 1011 0011 < c'est la couleur d'un pixel en 16 bits
%0000 0000 0001 1111 < c'est le masque pour isoler le bleu
%0000 0000 0001 0011 < Et ça c'est le résultat après un &
la couleur bleue = %0000 0000 0001 0011 = 19
autre exemple
la différence entre une majuscule et une minuscule , c'est le sixième bit
exemple
le "a" s'écrit %1100001
le "A" s'écit %1000001
Tu constates qu'il n'y a que le 6eme bit qui change pour passer d'une minuscule à une majuscule
pour obtenir la majuscule d'un Char tu as juste à changer son 6eme bit
Code : Tout sélectionner
a$="a"
b$= Chr(Asc(a$) & %11011111) ; c'est un autre masque .
Debug a$
Debug b$
Edit :
Forcément le temps que je prépare une réponse, tout à déjà été dit en plus complet

bon tant pis , je n'efface pas le post
