& - побитовый логический оператор - выполняет операцию с двумя целочисленными значениями.
WHERE (sc.Attributes & 1) = 0
Приведенный выше код проверяет, является ли sc.Attributes четным числом. Что то же самое, что сказать, что первый бит не установлен.
Хотя из-за имени столбца: «Атрибуты», тогда значение «1», вероятно, является просто каким-то флагом, который имеет некоторое внешнее значение.
Обычно используется 1 двоичная цифра для каждого флага, хранящегося в числе для атрибутов. Таким образом, для проверки первого бита вы используете sc.Attributes & 1, для проверки второго вы используете sc.Attributes & 2, для проверки третьего вы используете sc.Attributes & 4, для проверки четвертого вы используете sc.Attributes & 8, ...
Часть = 0 проверяет, не установлен ли первый бит.
Некоторые бинарные примеры: (== показать результат операции)
//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