Иди на текст

Битски оператори

Битски оператори (енгл. Bitwise Operators) служе за манипулацију битовима унутар целобројних типова података. Битски оператори могу бити:

  • унарни битски оператори: ~ комплемент,
  • бинарни битски оператори померања: << лево, >> десно и >>> неозначено десно,
  • & логичко И, | логичко ИЛИ и ^ логичко ЕКСИЛИ.

Подсети се лекције о битским операторима у програмском језику C.

У примерима који следе користићеш неозначен цео број како би избегао рачунање у комплементу двојке.

Битски AND оператор & врши операцију И на сваком биту два операнда.

uint a = 5;     // 0101 бинарно
uint b = 3;     // 0011 бинарно
uint c = a & b; // 0001 бинарно, 1 декадно

Битски OR оператор | врши операцију ИЛИ на сваком биту два операнда.

uint a = 5;     // 0101 бинарно
uint b = 3;     // 0011 бинарно
uint c = a | b; // 0111 бинарно, 7 декадно

Битски XOR оператор ^ врши операцију ЕКСИЛИ на сваком биту два операнда.

uint a = 5;     // 0101 бинарно
uint b = 3;     // 0011 бинарно
uint c = a ^ b; // 0110 бинарно, 6 декадно

Битски комплемент оператор ~ рачуна комплемент битова операнда.

uint a = 5;  // 0101 бинарно
uint b = ~a; // 28 јединица па 1010 бинарно, 4294967290 декадно

Оператор левог померања помера битове улево и додаје нуле на десној страни.

uint a = 5;      // 0101 бинарно
uint b = a << 1; // 1010 бинарно, 10 декадно

Оператор десног померања помера битове удесно. Код позитивних бројева, додаје нуле на левој страни; код негативних бројева, додаје јединице на левој страни (аритметичко померање).

uint a = 5; // 0101 бинарно
uint b = a >> 1; // 0010 у бинарно, 2 декадно