Операции отношения (<, <=, >, >=, ==,!=) сравнивают первый операнд со вторым. Операнды должны быть арифметического типа. Результат операции — логического типа, равен true или false.
1 Фактически, учитывается только 5 младших битов второго операнда, если первый имеет тип int или uint, и 6 битов, если первый операнд имеет тип long или ulong.
Поразрядные логические операции
Поразрядные логические операции (&, |, ^) применяются к целочисленным операндам и работают с их двоичными представлениями. При выполнении операций операнды сопоставляются побитно (первый бит первого операнда с первым оптом второго, второй бит первого операнда со вторым битом второго и т. д.). Стандартные операции определены для типов int, uint, long и ulong.
При поразрядной конъюнкции, или поразрядном И (операция обозначается &), бит ре- зультата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1.
При поразрядной дизъюнкции, или поразрядном ИЛИ (операция обозначается |), бит результата равен 1 тогда, когда соответствующий бит хотя бы одного из операндов равен 1.
При поразрядном исключающем ИЛИ (операция обозначается ^) бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1.
Пример применения поразрядных логических операций представлен в листинге 3.6.
Листинг 3.6. Поразрядные логические операции
using System;
namespace ConsoleApplicationl
{
class Classl
{
static void Main()
{
Console.WriteLine(6 & 5); // Результат 4
Console.WriteLine(6 | 5); // Результат 7
Console.WriteLine(6 ^ 5); // Результат 3
}
}
}
Условные логические операции
Условные логические операции И (&&) и ИЛИ (||) чаще всего используются с операндами логического типа. Результатом логической операции является true или false. Операции вычисляются по сокращенной схеме.
Результат операции логическое И имеет значение true, только если оба операнда имеют значение true. Результат операции логическое ИЛИ имеет значение true, если хотя бы один из операндов имеет значение true.
ВНИМАНИЕ -
Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется. Например, если первый операнд операции И равен false, результатом операции будет false независимо от значения второго операнда, поэтому он не вычисляется.
Условная операция
Условная операция (?:) — тернарная, то есть имеет три операнда. Ее формат