Une opération
binaire nécessite un opérateur entre 2 opérandes
et fournit un résultat. C’est par exemple,
le produit de 2 termes.
Le langage a défini un certain nombre
d'opérations logiques binaires. On donne le nom et
entre parenthèses le symbole de l'opérateur.
- le ET (&),
- le OU (|) qui s'obtient
en frappant [AltGr-6],
- le OU Exclusif (^),
- le décalage à droite
non signé (>>) --> entrée
d’un 0,
- le décalage à droite
signé (>>>) --> recopie du
bit de signe (recopie du bit le plus à gauche),
- le décalage à gauche (<<) ou (<<<) --> entrée
d’un 0,
- le NOR (~|),
- le NAND (~&),
- l'identité ou OU exclusif
complémenté (~^ ou ^~).
Remarque : les opérateurs de rotation
n’existent pas, mais peuvent être créées
avec les décalages et concaténations.
Ces opérateurs
réalisent l'opération annoncée au niveau
de chaque bit (cette opération est dite « bit
à bit »).
Les priorités sont définies
du plus prioritaire au moins prioritaire (dans une même
case, les opérateurs ont même priorité)
:
<< >> <<<
>>>
|
& ~&
|
^ ~^ ^~
|
| ~|
|
Important : la priorité
des opérations est modifiable localement grâce
aux parenthèses.
On pourra avoir ainsi :
assign S = a | b &
c ;
qui donnera le même résultat
que
assign S = a | (b &
c);
et sera différent de :
assign S = (a | b) &
c;
Conseil : par précaution,
il est toujours préférable de placer des parenthèses,
même si elles ne sont pas nécessaires. On évitera
toujours la 1ère écriture.