Les Entrées & Sorties "tout ou rien"

- opération ET bit à bit : &
- opération OU bit à bit : | (touches Alt+Gr+6 sur un clavier AZERTY)
- complément bit à bit : ~
- comparaison « égal à » : ==
- comparaison « différent de » : !=

On
s'intéresse à une variable a de la taille d'un octet (8 bits soit matériellement 8 fils électriques).
Définition
de a :
La variable a est constituée de 8 bits numérotés de 7 à 0. Le bit 7 est le poids fort et le bit 0 est le poids faible.
Exemple si la valeur de a est 0x75 en hexadécimal ou 117 en décimal :


Pour tester un bit, on effectue une opération ET et on compare le résultat à zéro.
On construit le masque en mettant à 1 le bit à tester.
Si on veut tester que le bit est à 1 on fera une comparaison « différent de » zéro.
Si on veut tester que le bit est à 0 on fera une comparaison « égal à » zéro.
Exemples :
- Si on veut tester si le bit 3 de a est à 1, on écrira :
if ( (a & 0x08) != 0) {
// instructions à exécuter si le bit 3 de a est à 1
}

Ici, le résultat du test est faux car le bit 3 de a est à 0.
- Si on avait testé si le bit 4 de a est à 1, on aurait obtenu :
if ( (a & 0x10) != 0) {
// instructions à exécuter si le bit 4 de a est à 1

Ici, le résultat du test est vrai car le bit 4 de a est à 1.
- Pour tester si le bit 1 de a est à 0, on écrira :
if ( (a & 0x02) == 0) {
// instructions à exécuter si le bit 1 de a est à 0
}
Ici, le résultat du test est vrai car le bit 1 de a est à 0.
- Pour tester si le bit 6 de a est à 0, on écrira :
if ( (a & 0x40) == 0) {
// instructions à exécuter si le bit 6 de a est à 0
}
Ici, le résultat du test est faux car le bit 6 de a est à 1.
Nous avons appris ici à tester un seul bit à la fois. Il est possible de tester plusieurs bits d'un octet simultanément.