Přejít na téma:
Bitové operace
Přejít na cvičení:
Rozhodovačka
Zobrazit na celou obrazovku
Zobrazit shrnutí tématu
Sdílet
Zobrazit nastavení cvičení

QR kód

QR kód lze naskenovat např. mobilním telefonem a tak se dostat přímo k danému cvičení nebo sadě příkladů.

Kód / krátká adresa

Tříznakový kód lze napsat do vyhledávacího řádku, také je součástí zkrácené adresy.

Zkopírujte kliknutím.

Nastavení cvičení

Pozor, nastavení je platné pouze pro toto cvičení a předmět.

umime.to/

Bitové operace

Bitové operace spojují logiku s binárním zápisem čísel. Provádějí logické úkony přímo nad jednotlivými bity binárních čísel, podle čehož také dostaly svůj název. Na rozdíl od běžné aritmetiky zde neexistuje žádný „přenos do vyššího řádu“ (carry). Každá pozice v čísle se zpracovává izolovaně. Bitové operace se vyznačují také tím, že nepracují jen s jedním bitem, ale s celou posloupností bitů najednou.

Logické operace

Logické operace jsou typickou ukázkou bitových operací. Mezi nejčastěji používané patří bitová negace (NOT), konjunkce neboli součin (AND), disjunkce neboli součet (OR) a neekvivalence (XOR). Více se logickým spojkám věnuje sekce logiky.

Příklady logických operací

Unární bitová operace NOT vezme jeden binární řetězec a kažou hodnotu v něm změní na opačonu; tedy z každé 0 udělá 1 a z každé 1 udělá 0.

  • Z řetězce 1⁠0100 udělá řetězec 0⁠1011.
  • Z řetězce 1⁠1111 udělá řetězec 0⁠0000.
  • Z řetězce 0⁠0000 udělá řetězec 1⁠1111.

Binární bitové operace vezmou dva řetězce stejné délky a zkombinují je do jednoho nového řetězce bit po bitu:

  • Operace AND udělá z řetězců 1⁠1010 a 0⁠1110 řetězec 0⁠1010
  • Operace AND udělá z řetězců 1⁠1110 a 0⁠0110 řetězec 0⁠0110
  • Operace OR udělá z řetězců 1⁠0010 a 0⁠0011 řetězec 1⁠0011
  • Operace OR udělá z řetězců 1⁠1110 a 0⁠0111 řetězec 1⁠1111
  • Operace XOR udělá z řetězců 1⁠0010 a 0⁠0011 řetězec 1⁠0001
  • Operace XOR udělá z řetězců 1⁠1110 a 0⁠0111 řetězec 1⁠1001

Posuny

Dalším častým druhem operací jsou posuny. Posun, neboli shift, se převádí přidáním nuly na začátek, případně na konec, sekvence bitů a odebráním jednoho bitu z druhé strany řetězce. Posun doprava (>>) tedy přidá nulu na začátek a odebere poslední bit, což pro binární čísla odpovídá celočíselnému dělení dvěma. Posun doleva (<<) naopak přidá nulu na konec řetězce a odebere první bit, což pro binární čísla odpovídá násobení dvěma.

Příklady posunů

Posun doprava (>>) o 1 pozici celočíselně dělí dvěma. Posun o 2 pozice dělí čtyřmi, posun o 3 dělí osmi a tak dále.

  • Z čísla 10 udělá číslo 5: 1010 >> 1 = 0101
  • Z čísla 4 udělá číslo 2: 0100 >> 1 = 0010
  • Z čísla 7 udělá číslo 3: 0111 >> 1 = 0011
  • Posun o 2 udělá z čísla 10 číslo 2: 1010 >> 2 = 0010
  • Posun o 2 udělá z čísla 7 číslo 1: 0111 >> 2 = 0001
  • Posun o 3 udělá z čísla 10 číslo 1: 1010 >> 3 = 0001

Posun doleva (<<) o 1 pozici celočíselně násobí dvěma. Posun o 2 pozice násobí čtyřmi, posun o 3 násobí osmi a tak dále.

  • Z čísla 5 udělá číslo 10: 0101 << 1 = 1010
  • Z čísla 4 udělá číslo 8: 0100 << 1 = 1000
  • Z čísla 7 udělá číslo 14: 0111 << 1 = 1110
  • Posun o 2 udělá z čísla 1 číslo 4: 0001 << 2 = 0100
  • Posun o 2 udělá z čísla 3 číslo 12: 0011 << 2 = 1100
  • Posun o 3 udělá z čísla 1 číslo 8: 0001 << 3 = 1000

Využití

Díky izolovanosti provádění operace na každém bitu zvlášť je v počítači často možné provádět více bitových operací paralelně. Následkem toho je práce s bitovými operacemi velmi rychlá, rychlejší než například sčítání nebo odčítání.

Bitové operace je možné používat na libovolné binární řetězce, nejen na čísla. Například do osmi bitů se dá místo osmibitového čísla uložit 8 indikátorů, takzvaných flagů, nesoucích binární informaci (s hodnotami true nebo false). S těmito flagy je pak možné manipulovat zároveň pomocí binárních operací.

Zavřít

Bitové operace (střední)

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Před položením dotazu si prosím projděte návody:

Prosíme, nezasílejte dotazy na prozrazení řešení úloh či vysvětlení postupu. Pokud hlásíte chybu, upřesněte prosím, v čem přesně spočívá a připojte snímek obrazovky.

Čeho se zpráva týká?

Vzkaz Hlášení chyby Obsah Ovládání Přihlášení Licence