&adalah bitwise logis dan operator - Ini melakukan operasi pada 2 nilai integer.
WHERE (sc.Attributes & 1) = 0
Kode di atas memeriksa untuk melihat apakah sc.Attributes adalah bilangan genap. Yang sama dengan mengatakan bahwa bit pertama tidak disetel.
Karena nama kolom:"Atribut", maka nilai "1" mungkin hanya beberapa bendera yang memiliki arti eksternal.
Adalah umum untuk menggunakan 1 digit biner untuk setiap bendera yang disimpan dalam nomor untuk atribut. Jadi untuk menguji bit pertama Anda menggunakan sc.Attributes&1, untuk menguji yang kedua Anda menggunakan sc.Attributes&2, untuk menguji yang ketiga Anda menggunakan sc.Attributes&4, untuk menguji yang keempat Anda menggunakan sc.Attributes&8, ...
Bagian =0 sedang menguji untuk melihat apakah bit pertama TIDAK disetel.
Beberapa contoh biner:(==untuk menunjukkan hasil operasi)
//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