Відповіді:
Це трохи розумний оператор скорочення . |a & bозначає, що ви застосовуєте логічний АБО до всіх бітів a(виробляючи один біт), а потім виконайте логічне І цього біта і b. |aне має ефекту, коли aце єдиний біт.
Тим не менш, досить часто зустрічається скорочення біт-розуму, застосованого до значень одного біта. Один типовий випадок - автоматично генерований код, де фактична ширина aможе залежати від конфігурації. Інша можливість полягає в тому, що це застарілий код, де aколись було кілька біт. Коли це aстало єдиним бітовим значенням, цей рядок все ще був технічно правильним, тому тепер не потрібний оператор скорочення був залишений.