Il s'agit d'un opérateur de réduction bit à bit . |a & b
signifie que vous appliquez un OU logique à tous les bits de a
(produisant un seul bit), puis effectuez un ET logique de ce bit et b
. |a
n'a aucun effet quand a
est un seul bit.
Néanmoins, il est assez courant de voir une réduction bit par bit appliquée aux valeurs à bit unique. Un cas typique est le code généré automatiquement où la largeur réelle de a
peut dépendre de la configuration. Une autre possibilité est le code hérité où a
il y avait une fois plusieurs bits. Lorsqu'elle a
est devenue une valeur de bit unique, cette ligne était toujours techniquement correcte, de sorte que l'opérateur de réduction désormais inutile a été laissé.
Dmitry Grigoryev
la source