Référence du Langage Arduino : Mini | Standard | Etendue | Librairies | Comparaison
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
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.
Aucun commentaire
Page d'accueil de la référence Arduino en français
Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino.
Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.
La présente traduction française commentée a été réalisée par Xavier HINAULT (2010) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.