Une opération
unaire nécessite un opérateur et une seule
opérande et fournit un résultat sur un bit.
L’opérateur unaire le plus connu est sûrement
le signe – devant un nombre qui le transforme en son
opposé.
Les opérations logiques unaires connues
par le langage sont :
- le complément à
1, bit à bit (~),
- le complément à
2 (-),
- le ET réduit (&),
- le OU réduit (|),
- le NAND réduit (~&),
- le NOR réduit (~|),
- le OU exclusif réduit (^),
- le OU exclusif réduit (~^ ou ^~),
- le complément logique (!).
Remarque : les opérateurs
unaires présentent toujours la plus grande
priorité par rapport aux opérateurs
binaires.
2.6.1 Complément
à 1 et complément logique
Ces 2 opérateurs peuvent
avoir un comportement identique, mais se différencient. Lorsque
l'on travaille sur des variables dont la taille est le bit, il n'y a
pas de différence et on peut utiliser indifféremment les
2 opérateurs.
Lors de l'usage de mots (sur plus d'un bit),
l'opérateur ~ fait un complément bit à
bit. L'opérateur ! considère
le mot comme une entité et associe un contenu nul
à 0 (faux) et tout autre valeur à 1 (vrai).
Conseil : l'opérateur
! est plutôt à classer dans les opérations
proprositionnelles. Il est souvent utilisé comme
inverseur sur les variables booléennes (1 bit)
Ainsi :
Si a est un mot codé sur 4 bits et
vaut 12 (1100 en binaire)
a = 12 ;
b = !a ; // b vaut 0
c = ~a ; //c n'est pas nul et vaut 3 (0011
en binaire)
2.6.2 Opération
réduite
C'est une opération qui s'applique
à une grandeur d'au moins un bit et qui fera une
opération logique en donnant un résultat sur
1 bit.
On peut dire que :
- l'opération réduite ET
donne 1 quand tous les bit d'un mot sont à 1,
- l'opération réduite OU
donne 1 quand au moins 1 des bits du mot est à
1,
- L'opérateur NAND réduit
est l'inverse du ET réduit,
- L'opérateur NOR réduit
est l'inverse de l'opérateur OU réduit,
- l'opérateur OU Exclusif réduit
et son inverse permet de vérifier la parité
d'une grandeur (nombre de bits à 1 ou 0).
2.6.3 Le complément à 2
C'est l'opération
arithmétique qui calcule l'opposé d'un nombre. Le
complément à 2 peut être considéré
comme une opération logique (complément à 1 bit
à bit augmenté de 1).