# převod znaku na číslo
print(ord('A')) # 65
print(ord('ž')) # 382
# převod čísla na znak
print(chr(65)) # 'A'
print(chr(382)) # 'ž'
# práce s Unicode
s = "Ahoj 😀"
print(len(s)) # délka ve znacích
print(s.encode()) # bajty v UTF-8Martin Korbel
Porozumět principům znakových sad a kódování
Seznámit se s ASCII tabulkou
Ukázat si omezení ASCII a přechod k Unicode
Praktické příklady v programování
Počítač pracuje s čísly, nikoliv přímo s písmeny.
Každý znak je reprezentován číslem (kódem).
Systém přiřazování čísel znakům = znaková sada.
ASCII = American Standard Code for Information Interchange
Rok vzniku: 1963 (ANSI X3.4)
7 bitů → 128 znaků
Obsahuje:
Velká a malá písmena A–Z
Číslice 0–9
Interpunkci
Řídící znaky (např. CR, LF, ESC)
| Dec | Hex | Znak | Popis |
|---|---|---|---|
65 | 41 | A | Velké A |
66 | 42 | B | Velké B |
97 | 61 | a | Malé a |
98 | 62 | b | Malé b |
| Dec | Hex | Znak | Popis |
|---|---|---|---|
48 | 30 | 0 | Číslice nula |
13 | 0D | CR | Carriage Return |
10 | 0A | LF | Line Feed |
Nepředstavují tisknutelné znaky
Slouží k řízení zařízení (tiskárny, terminály)
Příklady:
BEL (7) → zvukový signál
CR (13) → návrat na začátek řádku
LF (10) → posun na další řádek
8 bitů → 256 znaků
Horní polovina (128–255) není standardizovaná
Používána pro národní abecedy (např. ISO 8859-2 nebo CP1250 pro češtinu)
Problém: nekompatibilita mezi sadami
Cíl: jednotná reprezentace znaků pro všechny jazyky
Unicode ≈ mapování znaků → čísla (code points)
Zápis znaku Ctrl+Shift+U
Například:
A → U+0041
Ž → U+017D
😀 → U+1F600
Nejrozšířenější způsob ukládání Unicode
Proměnná délka (1–4 bajty)
Kompatibilní s ASCII (prvních 128 znaků je stejné)
Výhody:
Úsporné pro angličtinu
Univerzální pro všechny znaky
# převod znaku na číslo
print(ord('A')) # 65
print(ord('ž')) # 382
# převod čísla na znak
print(chr(65)) # 'A'
print(chr(382)) # 'ž'
# práce s Unicode
s = "Ahoj 😀"
print(len(s)) # délka ve znacích
print(s.encode()) # bajty v UTF-8ASCII = základní znaková sada (128 znaků, 7 bitů)
Rozšířený ASCII → různé varianty, nekompatibilní
Unicode → globální standard
UTF-8 → nejpoužívanější kódování
Najděte kód znaku @ v ASCII tabulce.
Kolik bajtů zabere znak 😀 v UTF-8?
Vyzkoušejte v Pythonu ord() a chr() s vlastními příklady.
Hlavní části:
Alfanumerická část
Numerický blok
Funkční klávesy (F1–F12)
Navigační klávesy (šipky, Home, End…)
Modifikátory (Shift, Ctrl, Alt, AltGr, Windows)
Odvozená od psacího stroje
Standard QWERTY (od roku 1873)
Alternativní rozložení (Dvorak, Colemak)
Různé jazykové varianty (např. česká QWERTZ)
Každá klávesa má svůj scancode (kód události stisknutí/puštění)
Operační systém převádí scancode → znak podle zvoleného rozložení
Příklad:
Klávesa s kódem 0x15 → v QWERTY = „Y“, v QWERTZ = „Z“
Drátové / bezdrátové
Mechanické / membránové / optické
Notebookové vs. externí
Ergonomické (dělené, zakřivené)
Herní (RGB podsvícení, makro klávesy)