►Выполнение побитовых логических операций...62

Все числа С++ могут быть представлены в двоичном виде, т.е. с использованием только 0 и 1 в записи числа. В табл. 4.2 указаны операции, которые работают с числами побитово; отсюда и происходит название термина "побитовые операции".

    Таблица 4.2. Побитовые операции

    _________________

    Оператор — Функция

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    ~  — Каждый бит меняет своё значение на противоположное: 0 заменяется 1, 1 — нулём

    &  — Побитовое И: поочередно выполняет операцию И с парами битов левого и правого аргумента

    — Побитовое ИЛИ

    ^  — Побитовое исключающее ИЛИ

    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 

С помощью побитовых операций можно сохранять большое количество информации в маленьком участке памяти. В мире существует множество вещей, которые имеют только два состояния ( или, максимум, четыре ). Вы или женаты ( замужем ), или нет ( хотя можете быть в разводе или ещё не женаты ). Вы или мужчина, или женщина ( по крайней мере, так сказано в моих водительских правах ). В С++ каждую такую характеристику вы можете сохранить в одном бите. Таким образом, поскольку для хранения целого числа выделяется 4 байта, в тип int можно упаковать значения 32 разных свойств.

Кроме того, побитовые операции выполняются крайне быстро. Хранение 32 характеристик в одном типе не приводит ни к каким дополнительным затратам.

«Хотя память становится всё дешевле, она всё равно не безгранична. Иногда, при работе с большими объёмами данных, такая экономия с использованием битовых представлений весьма существенна.»

[Советы]