Risposte:
Questo è un operatore di riduzione bit-saggio . |a & bsignifica che si applica un OR logico a tutti i bit di a(producendo un singolo bit) e quindi si esegue un AND logico di quel bit e b. |anon ha alcun effetto quando aè un singolo bit.
Tuttavia, è abbastanza comune vedere una riduzione bit-saggio applicata ai valori a bit singolo. Un caso tipico è il codice generato automaticamente in cui la larghezza effettiva di apuò dipendere dalla configurazione. Un'altra possibilità è che questo sia un codice legacy in cui auna volta c'erano diversi bit. Quando è adiventato un valore a singolo bit, questa riga era ancora tecnicamente corretta, quindi l'operatore di riduzione ora non necessario è stato inserito.