0Pricing
C# Academy · Урок

Побитовые операторы и операторы сдвига

Работайте с битами с помощью &, |, ^, ~ и сдвигов.

«Побитовые операторы и операторы сдвига» — бесплатный урок 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);
    }
}

Сдвиг влево: &lt;&lt;

<< перемещает биты влево, заполняя правую сторону нулями. Каждый сдвиг на один разряд удваивает значение: 1 << 3 равно 8.

using System;

class Program {
    static void Main() {
        Console.WriteLine(1 << 3);
        Console.WriteLine(5 << 1);
    }
}

Сдвиг вправо: &gt;&gt;

>> перемещает биты вправо. Для положительных чисел каждый сдвиг вдвое уменьшает значение: 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 — локальная установка не требуется.

Все уроки этого курса

  1. Арифметические операторы и операторы присваивания
  2. Операторы сравнения и логические операторы
  3. Побитовые операторы и операторы сдвига
  4. Приоритет и ассоциативность операторов
← Назад к C# Academy