cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 13 déc. 2008 à 16:58
Une fois que tu as lu ta valeur, tu applique un masque dessus pour isoler le bit
Par exemple si tu veux lire le bit 3, tu lis ta valeur, tu applique un masque avec 8 (2^3=8). Si le résultat est égal au masque (ici 8) c'est que le bit est à 1 sinon le résultat =0
If read_DataReg and 8 = 8 Then
msgbox("le bit 3 est à 1") ' le bit 3 correspondant évidement au 4eme bit
End If
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Mikaels35
Messages postés146Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention17 novembre 20092 14 déc. 2008 à 14:58
Tu écris:
If register = 2 ^ bytes Then
Le test fonctionne en effet si "register" n'à qu'un seul bit positionné et au bon endroit, n'importe quel autre bit à "1" en plus de celui testé entrainera une condition fausse !
Pour tester un bit quelconque quelle que soit la valeur de "register", il faut faire:
If (register And 2^ bytes) = 2^ bytes Then (comme le dit Casy)
ou on peut tout simplement écrire (puisqu'on fait un masque sur un seul bit, tous les autres sont mis à "0")