Bitový operátor

Z Wikipedie, otevřené encyklopedie

Bitový operátor se používá různých programovacích jazycích. Pracuje s jedním nebo dvěma bitovými vzory nebo binárními čísly a umožňuje manipulovat s hodnotami přímo na úrovni jednotlivých bitů. Na mnoha počítačích je provádění bitových operací rychlejší než provádění obvyklých operací sčítání, odečítání. Pokud se pomocí bitových operací provádí násobení nebo dělení je doba provádění s pomocí bitových operací výrazně kratší.

Obsah

[editovat] Bitové operátory

[editovat] NOT - Bitová negace

A bitový operátor NOT, nebo doplněk, je unární operace, která provádí logickou negaci každého bitu. Pro provedení operace je hodnota každého bitu opačná, tzn. z jednotek se stanou nuly a naopak.

NOT 0111
  = 1000

Pozor. Někdy se tento bitový operátor zaměňuje s logickým operátorem NOT. Ten ale bere celou zadanou hodnotu jako jednu hodnotu typu boolean a změní hodnotu true na hodnotu false nebo naopak. Logický operátor NOT není bitovým operátorem.

[editovat] OR - Bitový součet

A bitový operátor OR bere dva bitové vzory o stejné délce a vytváří nový bitový vzor, jehož hodnota závisí na hodnotě vstupních bitových vzorů. Porovnává postupně jeden po druhém příslušné bity (první bit prvního vzoru s prvním bitem druhého vzoru, druhý bit prvního vzoru s druhým bitem druhého vzoru atd.) a provádí s každým párem logickou operaci OR. Výsledek je pak hodnota 1, pokud alespoň jeden bit (nebo také oba dva) maj9 hodnotu 1, nebo je výsledek hodnota 0, pokud oba dva bity mají hodnotu 0. Příklad:

   0101
OR 0011
 = 0111 

[editovat] XOR - Bitová nonekvivalence

    0101
XOR 0011
  = 0110

[editovat] AND - Bitový součin

    0101
AND 0011
  = 0001


[editovat] Bitový posuv

[editovat] Aritmetický posun

Aritmetický posuv vlevo
Aritmetický posuv vlevo
Aritmetický posuv vpravo
Aritmetický posuv vpravo
  0110 LEFT-SHIFT
= 1100
  1100 RIGHT-SHIFT
= 1110
  0111 LEFT-SHIFT-BY-TWO
= 1100

[editovat] Logický posun

Logický posuv vpravo
Logický posuv vpravo
Logický posuv vlevo
Logický posuv vlevo

[editovat] Podívejte se na