Лекция: Поразрядные операции.

 

Побитовые операции можно проводить с любыми целочисленными переменными и константами. Нельзя использовать эти операции с переменными типа float и double Результатом побитовой операции будет так же целое число. К таким операциям относятся &(“И”), | (“ИЛИ”), ^(“исключающее ИЛИ”), ~ (“НЕ”) << сдвиг влево >> сдвиг вправо. Поразрядные операции позволяют обеспечивать доступ к каждому биту информации.

 

E1&E2 (операция “И”) E1| E2 (операция “ИЛИ”) E1^E2 (операция исключающее “ИЛИ”)

Результат каждой из трех операций имеет тип операндов, каждый его бит определяется битами операндов, стоящих на тех же местах

 

Е1 Е2 & | ^

 

Операция отрицания ~E

бит Е Бит результата

0 1

1 0

 

Если надо установить значение старшего разряда переменной типа char равным нулю, то удобно применить операцию &(END) с константой 127

Пример:

ch=сh&127;

пусть ch=’Б’; // Б 10000001

// 127 01111111

тогда получим 00000001


Поразрядные операции удобны для хранения в сжатом виде информации о состояниях ON/OFF(вкл. выкл.) В одном байте можно хранить 8 таких флагов. Часто поразрядные операции находят применение в драйверах устройств.

Пример:

Пусть ch- переменная флагов проверить находится ли флаг в состоянии ОN(вкл) в третьем бите.

if(ch&4) cout<<”3 бит содержит 1 состояние ON”;

// операция if проверяет на неравенство нулю

// 4=00000100

 

еще рефераты
Еще работы по информатике