~ (au niveau du bit pas)

Description :

L’opérateur NOT au niveau du bit en C++ est le caractère tilde ~ . Contrairement à & et |, l’opérateur NOT au niveau du bit est appliqué à un seul opérande à sa droite. Au niveau du bit, PAS change chaque bit en son opposé : 0 devient 1 et 1 devient 0.

En d’autres termes:

0 1 opérande1
-----
1 0 ~opérande1

 

Exemple de code :

int a = 103;  // binaire:  0000000001100111
int b = ~a;   // binaire:  1111111110011000 = -104

 

Remarques et avertissements

Vous pourriez être surpris de voir un nombre négatif comme -104 à la suite de cette opération. En effet, le bit le plus élevé d’une variable int est le bit de signe. Si le bit le plus élevé est 1, le nombre est interprété comme négatif. Ce codage de nombres positifs et négatifs est appelé complément à deux. Pour plus d’informations, consultez l’article de Wikipédia sur le complément à deux .

En passant, il est intéressant de noter que pour tout entier x, ~x est le même que -x – 1.

Parfois, le bit de signe dans une expression entière signée peut provoquer des surprises indésirables.

 


 

Source : https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitwisenot/

 

Laisser un commentaire