Основы программирования на языке Си. Кучин Н.В - 23 стр.

UptoLike

Составители: 

23
Поразрядные операции (побитовые операции ). Поразрядные опера-
ции проводятся с любыми целочисленными переменными и константа-
ми. Нельзя использовать эти операции с переменными типа float, double,
long double. Результатом побитовой операции будет целочисленное зна-
чение.
Поразрядными (побитовыми) операциями являются
& AND,
| OR,
^ XOR,
~ NOT,
<< сдвиг влево,
>> сдвиг вправо.
Операции AND, OR, NOT и XOR нам уже известны, они аналогич-
ны соответствующим логическим операциям. Только в этом случае срав-
ниваются значения соответствующей пары битов, а не значения выра-
жений.
Поразрядные операции позволяют обеспечить доступ к отдельным
битам информации и поэтому часто используются в программах коди-
рования и декодирования информации, различных драйверах.
При выполнении поразрядной операции над двумя переменными,
например типа char, операция производится над каждой парой соответ-
ствующих разрядов(битов). Отличие поразрядных операций от логичес-
ких и операций отношения состоит в том, что логические операции и
операции отношения всегда в результате дают 0 или 1. Для поразряд-
ных операций это не так. Приведем ряд примеров:
1) ‘A 11000001 2) ‘A 11000001
127 01111111 128 10000000
‘A’&127 01000001 ‘A’| 128 11000001
Поразрядные операции удобны для хранения информации в сжатом
виде, например о состоянии некоторого объекта. Значение каждого бита
( 0 или 1) можно интерпретировать как “отсутствие/присутствие” или
“включен/выключен”. В каждом байте можно хранить 8 таких флагов.
Если переменная ch является хранилищем таких флагов, то определить
значение четвертого бита можно следующим образом:
If ( ch & 8 ) printf(“4 бит содержит 1”);