Оператор & (Справочник по C#)
Оператор & может функционировать как унарный или как бинарный оператор.
Заметки
Унарный оператор & возвращает адрес своего операнда (требуется небезопасный контекст).
Бинарные операторы & являются предопределенными для целых типов и bool. Для целых типов оператор & выполняет битовую операцию логического умножения операндов. Для операндов bool оператор & выполняет операцию логического умножения операндов, то есть, если один или оба оператора — true, результатом будет являться значение true.
Оператор & вычисляет оба оператора независимо от значения первого из них. Например:
int i = 0;
if (false & ++i == 1)
{
// i is incremented, but the conditional
// expression evaluates to false, so
// this block does not execute.
}
Типы, определенные пользователем, могут вызвать перегрузку бинарного оператора & (см оператор). Операции над целыми типами обычно разрешены в перечислениях. Если бинарный оператор перегружен, соответствующий оператор присваивания (если таковой имеется), также будет явно перегружен.
Пример
class BitwiseAnd
{
static void Main()
{
// The following two statements perform logical ANDs.
Console.WriteLine(true & false);
Console.WriteLine(true & true);
// The following line performs a bitwise AND of F8 (1111 1000) and
// 3F (0011 1111).
// 1111 1000
// 0011 1111
// ---------
// 0011 1000 or 38
Console.WriteLine("0x{0:x}", 0xf8 & 0x3f);
}
}
// Output:
// False
// True
// 0x38
См. также
Ссылки
Основные понятия
Руководство по программированию на C#