&là toán tử và logic bitwise - Nó thực hiện thao tác trên 2 giá trị nguyên.
WHERE (sc.Attributes & 1) = 0
Đoạn mã trên kiểm tra xem sc.Attributes có phải là số chẵn hay không. Điều này cũng giống như nói rằng bit đầu tiên không được thiết lập.
Bởi vì tên của cột mặc dù:"Thuộc tính", thì giá trị "1" có thể chỉ là một số cờ có một số ý nghĩa bên ngoài.
Người ta thường sử dụng 1 chữ số nhị phân cho mỗi cờ được lưu trữ trong một số cho các thuộc tính. Vì vậy, để kiểm tra bit đầu tiên, bạn sử dụng sc.Attributes &1, để kiểm tra bit thứ hai, bạn sử dụng sc.Attributes &2, để kiểm tra bit thứ ba, bạn sử dụng sc.Attributes &4, để kiểm tra thứ tư, bạn sử dụng sc.Attributes &8, ...
Phần =0 đang kiểm tra xem có phải bit đầu tiên KHÔNG được đặt hay không.
Một số ví dụ nhị phân:(==để hiển thị kết quả của phép toán)
//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