Побитовые операторы и операторы сдвига
Работайте с битами с помощью &, |, ^, ~ и сдвигов.
«Побитовые операторы и операторы сдвига» — бесплатный урок C# Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.
Биты и двоичная система
Целые числа хранятся в виде битов. Побитовые операторы работают с отдельными битами. В C# доступны &, |, ^, ~, << и >>.
using System;
class Program {
static void Main() {
int x = 5;
Console.WriteLine(Convert.ToString(x, 2));
}
}Побитовое AND: &
& устанавливает бит в 1 только тогда, когда оба бита равны 1. 5 & 3 сравнивает 101 и 011 и даёт 001 = 1.
using System;
class Program {
static void Main() {
Console.WriteLine(5 & 3);
Console.WriteLine(12 & 10);
}
}Побитовое OR: |
| устанавливает бит в 1, когда 1 равен любой из двух битов. 5 | 3 даёт 111 = 7.
using System;
class Program {
static void Main() {
Console.WriteLine(5 | 3);
Console.WriteLine(8 | 1);
}
}Побитовое XOR: ^
^ устанавливает бит в 1, когда биты различаются. 5 ^ 3 даёт 110 = 6.
using System;
class Program {
static void Main() {
Console.WriteLine(5 ^ 3);
Console.WriteLine(7 ^ 7);
}
}Побитовое NOT: ~
~ инвертирует каждый бит. Из-за представления в дополнительном коде ~n равно -(n + 1).
using System;
class Program {
static void Main() {
Console.WriteLine(~5);
Console.WriteLine(~0);
}
}Сдвиг влево: <<
<< перемещает биты влево, заполняя правую сторону нулями. Каждый сдвиг на один разряд удваивает значение: 1 << 3 равно 8.
using System;
class Program {
static void Main() {
Console.WriteLine(1 << 3);
Console.WriteLine(5 << 1);
}
}Сдвиг вправо: >>
>> перемещает биты вправо. Для положительных чисел каждый сдвиг вдвое уменьшает значение: 20 >> 2 равно 5.
using System;
class Program {
static void Main() {
Console.WriteLine(20 >> 2);
Console.WriteLine(8 >> 1);
}
}Битовые маски
Маска выделяет определённые биты. Выполните AND для значения и маски, чтобы сохранить только эти биты.
using System;
class Program {
static void Main() {
int value = 0b1011;
int mask = 0b0110;
Console.WriteLine(value & mask);
}
}Установка и очистка битов
Используйте | с маской одного бита, чтобы установить бит, а & с инвертированной маской — чтобы очистить его.
using System;
class Program {
static void Main() {
int flags = 0;
flags |= (1 << 2);
Console.WriteLine(flags);
flags &= ~(1 << 2);
Console.WriteLine(flags);
}
}Проверка бита
Чтобы проверить, установлен ли бит, выполните AND с его маской и сравните результат с нулём.
using System;
class Program {
static void Main() {
int flags = 0b0100;
bool isSet = (flags & (1 << 2)) != 0;
Console.WriteLine(isSet);
}
}Сдвиг как быстрое умножение
Сдвиг — быстрый способ умножать или делить на степени двойки, часто используемый в коде, чувствительном к производительности.
using System;
class Program {
static void Main() {
int n = 7;
Console.WriteLine(n << 2);
Console.WriteLine(n >> 1);
}
}Быстрая проверка
Проверьте свои знания о побитовых операторах.
Повторение
Побитовые операторы работают с каждым битом отдельно: & — AND, | — OR, ^ — XOR, а ~ — NOT. Сдвиги << и >> перемещают биты влево или вправо, умножая или деля значения на степени двойки.
С помощью масок можно устанавливать, очищать и проверять отдельные биты — это основа работы с флагами и данными на низком уровне.
Часто задаваемые вопросы
Урок «Побитовые операторы и операторы сдвига» бесплатный?
Да — полный текст урока «Побитовые операторы и операторы сдвига» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.
Чему я научусь в уроке «Побитовые операторы и операторы сдвига»?
Работайте с битами с помощью &, |, ^, ~ и сдвигов. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Побитовые операторы и операторы сдвига»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Арифметические операторы и операторы присваивания
- Операторы сравнения и логические операторы
- Побитовые операторы и операторы сдвига
- Приоритет и ассоциативность операторов