Битовые операции абсолютно необходимы при программировании аппаратных регистров во встроенных системах. Например, каждый процессор, который я когда-либо использовал, имеет один или несколько регистров (обычно это определенный адрес памяти), которые управляют включением или отключением прерывания. Чтобы позволить прерыванию запускаться, обычный процесс должен установить бит разрешения для этого одного типа прерывания, и, самое главное, не изменять ни один из других битов в регистре.
Когда прерывание срабатывает, оно, как правило, устанавливает бит в регистре состояния, чтобы одна процедура обслуживания могла определить точную причину прерывания. Тестирование отдельных битов позволяет быстро декодировать источник прерывания.
Во многих встроенных системах общий объем доступной оперативной памяти может составлять 64, 128 или 256 байт (то есть байтов, а не килобайт или мегабайт). В этой среде обычно используется один байт для хранения нескольких элементов данных, логических флагов и т. Д., А затем используются битовые операции. установить и прочитать это.
В течение ряда лет я работал со спутниковой системой связи, в которой полезная нагрузка сообщения составляет 10,5 байта. Чтобы наилучшим образом использовать этот пакет данных, информация должна быть упакована в блок данных, не оставляя неиспользованных битов между полями. Это означает, что необходимо широко использовать побитовые и сдвиговые операторы для получения информационных значений и их упаковки в передаваемую полезную нагрузку.