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