Побитовые логические операции

   
На этом шаге мы рассмотрим эти операции и особенности их использования.

   
Эти операции выполняются над соответствующими битами чисел, имеющими целый тип. Если операнд - не целое число, то оно автоматически преобразуется в целое. Побитовые операции таковы:

  • & - поразрядное умножение (конъюнкция). Формат:
       int a, b=3, c=4;   
       a = b & с;
    
  • | - поразрядное сложение (дизъюнкция) или включающее "или". Формат:
       int a, b=3, c=4;
       a = b | с;
    
  • ^ - поразрядное исключающее "или". Формат:
       int a, b=3, с=4;
       а = b ^ с;
    
  • ~ - операция дополнения. Формат:
       int a, b=3, c=4;
       a = b ~ с;
    
  • >> - сдвиг разрядов вправо. Формат:
      int a, b=3, с=4;
      а = b >> с;
    
  • << - сдвиг разрядов влево. Формат:
       int a, b=3, c=4;
       a = b << с;
    

   
Побитовые логические операции выполняются по правилам, приведенным в таблице 1.

Таблица 1. Правила выполнения побитовых логических операций

Значения битов Результат операции

Е1Е2Е1 & Е2Е1 | Е2Е1 ^ Е2~Е1
000001
100110
010111
111100

   
Следует отличать побитовые операции над целыми числами от логических. Например:

  int х=1, y=2;   
  bool  а=х && у;   
  bool b=x & у;

   
Здесь:
а = 1, b = 0, потому что:
из a = x && y следует: т. к. х не равно и у не равно 0, то по определению операции && результат будет истинен, а в языке С истинный результат имеет значение 1.

   
С другой стороны, для поразрядного "и" получим: х = 01, у = 10 в двоичной системе счисления, в которую надо перевести операнды, чтобы выполнить побитовую операцию &.
Тогда получим: 01 & 10 = 00.

   
На следующем шаге мы рассмотрим операции присваивания.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий