14. Bitové operace a hashování Flashcards
Jaké jsou základní bitové operace a co dělají?
-
AND (&): Vrací 1 pouze pokud oba porovnávané bity jsou 1. Například:
0101 & 0011 = 0001
. -
OR (|): Vrací 1 pokud alespoň jeden z porovnávaných bitů je 1. Například:
0101 | 0011 = 0111
. -
XOR (^): Vrací 1 pokud jsou porovnávané bity rozdílné. Například:
0101 ^ 0011 = 0110
. -
NOT (~): Invertuje bity; 0 se stává 1 a 1 se stává 0. Například:
~0101 = 1010
(závisí na velikosti typu). -
Shift Left («): Posouvá bity doleva, pravé bity se doplní nulami. Například:
0101 << 1 = 1010
. -
Shift Right (»): Posouvá bity doprava; chování levých bitů závisí na typu (aritmetický vs. logický posun). Například:
0101 >> 1 = 0010
.
Co je hashovací funkce a jak funguje hash tabulka?
- Hashovací Funkce: Transformuje vstupní data různé délky na výstup pevné délky, což je klíčové pro rychlé vyhledávání v hash tabulce. Důležité vlastnosti zahrnují determinismus, rychlost, a rovnoměrné rozdělení hash hodnot.
- Hash Tabulka: Datová struktura používající hashovací funkci k určení indexu v poli, kde se ukládají data. Kolize, kdy dva klíče mají stejný hash, se řeší metodami jako je řetězení nebo otevřené adresování.
Jak mohou být bitové operace prakticky využity v programování?
Bitové operace se používají pro efektivní manipulaci s jednotlivými bity, nastavení, mazání, nebo testování konkrétních bitů ve hodnotě. Například, můžeme nastavit, zkontrolovat nebo změnit oprávnění v systému, kde každé bitové pozici odpovídá specifické oprávnění.
Jaké jsou praktické příklady využití hashování?
Hashování se široce používá pro efektivní vyhledávání v datových strukturách, bezpečnostní aplikace jako jsou digitální podpisy a ověřování dat, a pro distribuci dat v distribuovaných systémech k zajištění rovnoměrného zatížení. Například, hash tabulky v Pythonu jsou implementovány pomocí slovníků, které poskytují rychlé vložení, vyhledávání a mazání dat.