Прежде чем мы научимся манипулировать битом и байтом, нам нужно понять разницу между ними и то, как мы можем использовать их для манипулирования числами. В этом примере я буду использовать целые числа так, как они объявляются в языке программирования 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.