ビットANDは演算子の左辺と右辺の同じ位置にあるビットを比較して、
両方のビットが共に「1」の場合だけ「1」にします。
下記にg50msecCounterを加算していった時の流れを書きてみます。
0000000000000000 = 0 <--- g50msecCounterの値です。
0000000000001111 = 15
----------------
0000000000000000 = 00 --> (条件一致)
0000000000000001 = 1 g50msecCounterの値に1を加算
0000000000001111 = 15
----------------
0000000000000001 = 01 --> 不一致
0000000000000010 = 2
0000000000001111 = 15
----------------
0000000000000010 = 2 --> 不一致
(中間省略)
0000000000001110 = 14
0000000000001111 = 15
----------------
0000000000001110 = 14 --> 不一致
0000000000001111 = 15
0000000000001111 = 15
----------------
0000000000001111 = 15 --> 不一致
0000000000010000 = 16
0000000000001111 = 15
----------------
0000000000000000 = 0 --> (条件一致)
0000000000010001 = 17
0000000000001111 = 15
----------------
0000000000000001 = 1 --> 不一致
(中間省略)
0000000000100000 = 32
0000000000001111 = 15
----------------
0000000000000000 = 0 --> (条件一致)