Битовые операторы - когда и как вы используете операторы &, |, ^, >> и т. Д.? - PullRequest
1 голос
/ 27 декабря 2010

Я знаю, что они делают, я просто не понимаю, когда вы их используете ...

Ответы [ 3 ]

4 голосов
/ 27 декабря 2010

Когда вам нужно манипулировать отдельными битами порции данных (например, байтом или целым числом).Это часто происходит, например, в алгоритмах, работающих с:

  • шифрованием
  • сжатием
  • обработкой аудио / видео
  • сетью (протоколы)
  • постоянство (форматы файлов)
  • и т. Д.
2 голосов
/ 27 декабря 2010

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

Example: 5 = 101 in binary
that would mean:
option 1 - yes
option 2 - no
option 3 - yes

Если бы вы запросили об этом, вы бы использовали побитовый & или | операторы для выбора правильных пунктов.

Вот хорошая статья , которая более подробно об этом рассказывается.

1 голос
/ 27 декабря 2010

Один пример, если у вас есть цвет (A) RGB, сохраненный как 32-разрядное целое число, и вы хотите извлечь отдельные компоненты цвета:

red = (rgb >> 16) & 0x000000ff;
green = (rgb >> 8) & 0x000000ff;
blue = rgb & 0x000000ff;

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

...