Технология программирования. Базовые конструкции C/C++. Липачев Е.К. - 18 стр.

UptoLike

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

18
позволяют выполнить установку значений битов. Операции производятся по
всем известным таблицам истинности.
Пример. Проверка значения бита.
char bb=0x64; // = 100 в дес.с.с. и 1100100 - в дв.с.с.
if (bb & 4) cout<<"\nТретий бит равен 1";
else cout<<"\nТретий бит равен 0";
if (bb & 8) cout<<"\nЧетвертый бит равен 1";
else cout<<"\nЧетвертый бит равен 0";
if (bb & 32) cout<<"\nШестой бит равен 1";
else cout<<"\nШестой бит равен 0";
Побитовые операции сдвига >> и << сдвигают все биты
переменной, соответственно, вправо или влево. Общая форма операторов
сдвига:
переменная >> количество_разрядов
переменная << количество_разрядов
При сдвиге битов в один конец числа, другой конец заполняется нулями.
Операции сдвига можно использовать для быстрого умножения
деления) на степени числа 2.
Пример. Умножение и деление на степени числа 2.
int a,b;
a=3; b=2048;
int n=a<<5; // n= a*32
int m=b>>5; // m=b/32
int x= (a<<3) + (a<<2); // x=a*12 = a*8 + a*4
Замечание. В последнем операторе примера показано, как применить
операции сдвига при умножении на числа, отличные от степеней 2, в данном
случае умножение на 12. Скобки в операторе x= (a<<3) + (a<<2)
необходимы, это связано с тем, что сложение имеет более высокий
приоритет, чем операции сдвига.
Операции присваивания
В результате операции присваивания переменная получает новое
значение.
Общая форма оператора присваивания:
идентификатор = выражение;
Оператор присваивания может присутствовать в любом выражении
языка.
Пример. Оператор присваивания в арифметическом выражении.
int a, b, c;
позволяют выполнить установку значений битов. Операции производятся по
всем известным таблицам истинности.
     Пример. Проверка значения бита.
char bb=0x64; // = 100 в дес.с.с. и 1100100 - в дв.с.с.
if (bb & 4) cout<<"\nТретий бит равен 1";
else cout<<"\nТретий бит равен 0";
if (bb & 8) cout<<"\nЧетвертый бит равен 1";
else cout<<"\nЧетвертый бит равен 0";
if (bb & 32) cout<<"\nШестой бит равен 1";
else cout<<"\nШестой бит равен 0";
     Побитовые операции сдвига ―>>‖ и ―<<‖ сдвигают все биты
переменной, соответственно, вправо или влево. Общая форма операторов
сдвига:
              переменная >> количество_разрядов
              переменная << количество_разрядов
При сдвиге битов в один конец числа, другой конец заполняется нулями.
     Операции сдвига можно использовать для быстрого умножения (и
деления) на степени числа 2.
     Пример. Умножение и деление на степени числа 2.
int a,b;
a=3; b=2048;
int n=a<<5; // n= a*32
int m=b>>5; // m=b/32
int x= (a<<3) + (a<<2); // x=a*12 = a*8 + a*4
     Замечание. В последнем операторе примера показано, как применить
операции сдвига при умножении на числа, отличные от степеней 2, в данном
случае – умножение на 12. Скобки в операторе x= (a<<3) + (a<<2)
необходимы, – это связано с тем, что сложение имеет более высокий
приоритет, чем операции сдвига.

Операции присваивания
     В результате операции присваивания переменная получает новое
значение.
     Общая форма оператора присваивания:
идентификатор = выражение;
     Оператор присваивания может присутствовать в любом выражении
языка.
     Пример. Оператор присваивания в арифметическом выражении.
int a, b, c;
                                   18