~ (Opérateur "bit à bit" NON)

Description

L'opérateur "bit à bit" NON en langage C++ est le caractère ~. A la différence de & (ET bit à bit) et de | (OU bit à bit), l'opérateur bit à bit NON est appliqué à une seule expression numérique entière à sa droite. L'opérateur "bit à bit" NON change chaque bit en son opposé : 0 devient 1 et 1 devient 0. Ainsi :

0 1 opérande1 ---- 1 0 ~ opérande1 - résultat retourné par l'opérateur NON bit à bit

Syntaxe

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

Vous pourriez être étonné de voir un nombre négatif tel que -104 comme résultat de l'opération. Ceci est du au bit de poids fort à l'intérieur de la variable de type int, aussi appelé "bit de signe". Si le bit de poids fort est à 1, le nombre est interprété comme négatif. Cet façon de coder les nombres positifs et négatifs est appelée "Second complément". Pour plus d'information, voir l'article wikipédia sur le "two's complement".

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

On comprendra également que de temps en temps, le signe de bit des expressions entières peut donner des surprises inattendues.

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.