'>

opérations booléennes en C plus plus

Un bit est la quantité minimum d'informations que nous pouvons imaginer, car il ne stocke que soit la valeur 1 ou 0, ce qui représente OUI ou NON, activé ou désactivé, vrai ou faux, etc .. à savoir: deux états possibles chacun en face de l'autre, sans possibilité de toutes nuances. Nous allons considérer que les deux valeurs possibles d'un bit sont 0 et 1.

Plusieurs opérations peuvent être effectuées avec les bits, soit en conjonction avec d'autres bits ou eux seuls. Ces opérations reçoivent le nom des opérations booléennes, un mot qui vient du nom d'un des mathématiciens qui ont contribué le plus à ce domaine: George Boole (1815-1864).

Toutes ces opérations ont un comportement établi et chacun d'entre eux peuvent être appliqués à n'importe quel bit n'importe quelle valeur qu'ils contiennent (0 ou 1). Ensuite, vous avez une liste des opérations booléennes de base et une table avec le comportement de cette opération avec toutes les combinaisons possibles de bits.

ET
Cette opération est réalisée entre deux bits, que nous appellerons a et b. Le résultat de l'application de cette opération ET est 1 si a et b sont égaux à 1 et 0 dans tous les autres cas (par exemple, si l'un ou l'autre des variables est 0).

ET (&)

a b a & b
0 0 0
0 1 0
1 0 0
1 1 1

OU
Cette opération est réalisée entre deux bits (a et b). Le résultat est 1 si l'un ou l'autre des deux bits est égal à 1, ou si les deux sont 1. Si aucune n'est égal à 1, le résultat est égal à 0.

OR (|)
a b a | b
0 0 0
0 1 1
1 0 1
1 1 1

XOR (OU exclusif)
Cette opération est réalisée entre deux bits (a et b). Le résultat est 1 si l'un des deux bits est 1, mais pas dans le cas où les deux sont. Là, pendant, si aucun d'eux ou les deux sont égaux à 1, le résultat est 0.

XOR (^)
a b a ^ b
0 0 0
0 1 1
1 0 1
1 1 0

PAS
Cette opération est effectuée sur un seul bit. Son résultat est l'inversion de la valeur réelle de l'outil: s'il a été mis à 1, il passe à 0, et si elle était de 0, il devient une:

NOT (~)
une ~ a
0 1
1 0

Ce sont les 4 opérations booléennes de base (AND, OR, XOR et NOT). La combinaison de ces opérations, nous pouvons obtenir un résultat possible à partir de deux bits.

En C + +, ces opérateurs peuvent être utilisés avec des variables de n'importe quel type de données entier, l'opération booléenne est effectuée pour tous les bits de chacune des variables impliquées. Par exemple, en supposant que deux variables: a et b, deux de type unsigned char, où un contient 195 (11000011 en binaire) et B contient 87 (ou 01010111 en binaire). Si nous écrivons le code suivant:

1
2
3
4



unsigned char a = 195;
unsigned char b = 87;
unsigned char c;
c = a &b;



Cela signifie que nous avons mené une opération ET entre a et b. L'opération est effectuée entre les bits des deux variables qui sont situés à la même position: le bit le plus à droite de c contiendra le résultat de la conduite de l'opération ET entre les bits les plus à droite de A et B:


La même opération est également réalisée entre les deuxièmes bits des deux variables, et le troisième, et ainsi de suite, jusqu'à ce que l'opération est effectuée entre tous les bits des deux variables (chacun uniquement avec le même bit de l'autre variable).

La valeur binaire finale de c est 01000011, qui est de 67 en nombres décimaux. Donc, 195 et 87 est égal à 67.
Publié par Drupal french Study