
Рассмотрим основы работы с битами, битовые маски и флаги. Операции с битами.
Многие наверняка знают о существовании битовых операций таких как &, | и т.д. Но не все понимают, для чего они нужны. Сегодня я попытаюсь объяснить, что такое биты и операции над ними.Что такое бит?
Это единица измерения информации. 1 бит равен одному разряду в двоичной системе счисления.
Как правильно байт состоит из 8 битов. Раньше были и другие количества битов на байт, но нам это сейчас не важно.
Как уже сказано выше, бит - это один разряд в двоичной системе счисления, а следовательно он может принимать значение 0 или 1.
Операции над битами
& (AND) - И (и там и там бит установлен, значит установлен)
1000 0110 & 0010 1100 = 0000 0100
То есть:
1 и 1 даст 1
1 и 0, 0 и 1, 0 и 0 дадут 0
| (OR) - ИЛИ (или там или там установлен, значит установлен)
1000 0110 | 0010 1100 = 1010 1110
1 и 1, 1 и 0, 0 и 1 дадут 1
0 и 0 даст 0
^ (XOR) - Исключающие ИЛИ (Если только 1 бит установлен, тогда установлен)
1000 0110 ^ 0010 1100 = 1010 1010
1 и 0, 0 и 1 дадут 1
0 и 0, 1 и 1 дадут 0
Обратите внимание, на то что основное отличие от OR в том что, если сразу оба бита установлены, то в результате мы получим сброшенный бит.
~ (NOT) - НЕ (инвертирование) применяется только к 1 числу
~ 0010 1100 = 1101 0011
1 даст 0
0 даст 1
То есть биты меняются на противоположные.
<< (SHL) – сдвиг влево, сдвигает биты влево на n позиций, справа добавляются нули
1000 0110 << 2 = 0001 1000
>> (SHR) - сдвиг вправо, слева заполняется нулями
1000 0110 >> 2 = 0010 0001
В следующих статьях я расскажу как и для чего это всё можно использовать.
Комментарии к статье: Биты и битовые операции