Прежде чем мы научимся манипулировать битом и байтом, нам нужно понять разницу между ними и то, как мы можем использовать их для манипулирования числами. В этом примере я буду использовать целые числа так, как они объявляются в языке программирования C.

Бит — это единица информации внутри компьютера, которая может быть либо 1, либо 0.

Байт состоит из 8 бит, представленных как 00000000.

Этот график представляет каждый бит в полном байте. Каждое место в 8 пространствах представляет собой число.

Сначала создадим целое число и установим его равным нулю:

int i = 0;

Вот как выглядит байт для этого целого числа:

Как видим, ничего не изменилось, поскольку 00000000 — это значение байта, равное 0.

Но давайте продолжим и изменим целочисленное значение на 1.

int i = 1;

Теперь байт выглядит так:

Область, которая представляет поле «1» теперь как 1 в нем. Вы можете думать о «1» и «0» как о выключателях света, которые включаются и выключаются. 0 означает выключено, а 1 — включено.

Теперь предположим, что я хочу изменить число с 1 на 2. Вот когда мы используем оператор. Итак, мы изменим наш int, чтобы он выглядел так:

int i = 1 << 1;

Что произошло выше, так это то, что команда переместила значение на один пробел влево, что изменило значение int с 1 на 2. Теперь скажем, я хочу, чтобы значение int было 32. Для этого мы просто изменим int на 1 5.

int i = 1 << 5;

Набрав 1 5, мы переместили значение байта на 5 пробелов влево и сделали int равным 32.

И, наконец, можно пойти обратным путем, воспользовавшись оператором.

int i = 32 >> 5;

Указав int начинать с числа 32 и двигаться назад на 5 пробелов, мы затем устанавливаем значение int равным 1.