2011-04-01 72 views

回答

1

它翻译成chess = chess & _board[i];其中&是按位AND运算符。

4

&=是化合物bitwise AND和赋值运算符。它的作用是将chess(它的8位作为char)中的位取与AND的对应位_board[i]。然后它将结果分配回chess

实际上,如果_board中的所有值都具有相应的位设置,则会与循环一起导致chess的每个位被设置。

此外:因为_board是8个项目乘以8位,我假定每个项目代表一行,并且该项目的位代表该行的列a-h。位1中存在1代表某事(我们不知道是什么)。

所以最后的结果将是,chess含有1在其每个8个比特的当且仅当所述东西存在于相应列中的所有行的棋盘的A-H。

+1

不,它会导致“棋”如果* _board中的每个*值都设置了该位,则设置该位。 '| ='会给你描述的结果。 – caf 2011-04-01 02:18:09

+0

@caf:我的错误。深夜在这里。 – Jon 2011-04-01 02:20:05

1

&=是AND和赋值的组合。因此chess &= _board[i]相当于chess = chess & _board[i]

0

这意味着取象棋和_board [i]和设置棋等于该值的按位AND

6

下面的语句:

x &= y 

...相当于:

x = x & y 

...并且,在上面,与号(&)是 “按位与”。 “x & y”的结果是所有位中都有1的值,其中x和y都具有对应的1位,并且其他位均为0.