&jest bitowym operatorem logicznym i — wykonuje operację na 2 wartościach całkowitych.
WHERE (sc.Attributes & 1) = 0
Powyższy kod sprawdza, czy sc.Attributes jest liczbą parzystą. To jest to samo, co powiedzenie, że pierwszy bit nie jest ustawiony.
Jednak ze względu na nazwę kolumny:"Atrybuty", wtedy wartość "1" jest prawdopodobnie tylko flagą, która ma jakieś znaczenie zewnętrzne.
Powszechnie używa się 1 cyfry binarnej dla każdej flagi przechowywanej w liczbie dla atrybutów. Tak więc, aby przetestować pierwszy bit, użyj sc.Atrybuty&1, aby przetestować drugi, użyj sc.Atrybuty&2, aby przetestować trzeci, użyj sc.Atrybuty&4, aby przetestować czwarty, użyj sc.Atrybuty&8, ...
Część =0 sprawdza, czy pierwszy bit NIE jest ustawiony.
Kilka przykładów binarnych:(==aby pokazać wynik operacji)
//Check if the first bit is set, same as sc.Attributes&1
11111111 & 00000001 == 1
11111110 & 00000001 == 0
00000001 & 00000001 == 1
//Check if the third bit is set, same as sc.Attributes&4
11111111 & 00000100 == 1
11111011 & 00000100 == 0
00000100 & 00000100 == 1