12 OU 3 : assembler des drapeaux

Calculez 12 OU 3 sur 8 bits : le résultat 15 combine les bits des deux nombres.

A en binaire
0000 1100
B en binaire
0000 0011
Résultat (A OU B)
0000 1111
Résultat en décimal
15
Résultat en hexadécimal
0x0F

Le cas en détail

Le OU garde un 1 dès qu'un des deux nombres en a un. 00001100 et 00000011 n'ont aucune colonne en commun, donc leur OU vaut simplement leur somme : 15. C'est ainsi que l'on combine des options (drapeaux) dans un seul nombre.

À retenir : Pour activer une option sans toucher aux autres, faites un OU avec le bit correspondant. Pour la désactiver, faites un ET avec l'inverse.

L'exemple chiffré

Valeurs utilisées dans ce cas (des exemples, pas des mesures) :

  • Nombre A : 12
  • Nombre B (ou nombre de positions du décalage) : 3
  • Opération : A OU B
  • Largeur du nombre : 8 bits (un octet)
A en binaire
0000 1100
B en binaire
0000 0011
Résultat (A OU B)
0000 1111
Résultat en décimal
15
Résultat en hexadécimal
0x0F

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Chaque nombre est écrit en binaire sur la largeur choisie. ET donne 1 si les deux bits valent 1 ; OU donne 1 si au moins un bit vaut 1 ; OU exclusif donne 1 si les bits diffèrent ; NON inverse tous les bits de A. Un décalage à gauche de k positions multiplie par 2^k (en perdant les bits qui débordent), un décalage à droite divise par 2^k.

Les résultats sont fournis à titre indicatif, sans valeur de conseil juridique, fiscal ou financier.

Pour aller plus loin