&=
является составным побитовым И и оператором присваивания. Что он делает, так это то, что он принимает биты в chess
(что равно 8 битам как char
) и объединяет их с соответствующими битами _board[i]
. Затем он присваивает результаты обратно chess
.
По сути, вместе с циклом это приводит к установке каждого бита chess
, если для всех значений в _board
установлен соответствующий бит.
Далее: поскольку _board
равно 8 элементам, умноженным на 8 бит, я предполагаю, что каждый элемент представляет строку, а биты элемента представляют столбцы a-h этой строки. Наличие 1 в битовой позиции представляет что-то (мы не знаем что).
Таким образом, конечным результатом будет то, что chess
содержит 1 в каждом из своих 8 битов тогда и только тогда, когда что-то существует во всех строках соответствующего столбца a-h шахматной доски.