Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

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.

Commentaires utilisateurs

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 ou à l'adresse suivante : support_at_mon-club-elec_point_fr

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-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.