Uživatelské nástroje

Nástroje pro tento web


it:sw:char

Datový typ Char (Character)

Char je primitivní datový typ používaný k reprezentaci jednoho znaku. Je stavebním kamenem pro všechny textové řetězce a hraje klíčovou roli v mezinárodní komunikaci a lokalizaci softwaru.

1. Reprezentace v paměti

Znaky nejsou v počítači uloženy jako obrázky, ale jako sekvence bitů. Způsob, jakým se číselná hodnota převede na viditelný znak, určuje kódování.

  • Binární podstata: Pokud uložíme znak `'A'`, procesor v paměti ve skutečnosti vidí binární hodnotu $01000001_2$ (v desítkové soustavě 65).
  • Velikost: * V jazycích jako C/C++ zabírá obvykle 1 byte (8 bitů), což stačí pro 256 znaků.
    • V moderních jazycích jako Java nebo C# zabírá 2 byty (16 bitů), aby mohl nativně reprezentovat širší sadu Unicode.

2. Klíčové standardy kódování

ASCII (American Standard Code for Information Interchange)

Základní 7bitový kód (rozšířený na 8bitový), který definoval 128 základních znaků.

  • Obsahuje velká a malá písmena anglické abecedy, číslice 0–9 a řídicí znaky (např. odřádkování).
  • Omezení: Neobsahuje diakritiku (háčky, čárky) ani jiná písma než latinku.

Unicode (Universal Character Set)

Standard, jehož cílem je sjednotit všechna písma světa (včetně emoji a historických písem).

  • UTF-8: Nejpopulárnější kódování současnosti. Je proměnlivé délky (1 až 4 byty). Prvních 127 znaků je identických s ASCII, což zajišťuje zpětnou kompatibilitu.
  • UTF-16: Používá primárně 2 byty pro každý znak.

3. Speciální typy znaků

V programování se setkáváme se znaky, které nejsou přímo viditelné nebo mají speciální funkci.

Řídicí znaky (Control Characters)

Původně sloužily k ovládání dálnopisů a tiskáren:

  • `CR` (Carriage Return) – Návrat vozíku.
  • `LF` (Line Feed) – Posun o řádek.
  • `NULL` (Nulový znak) – V jazyce C označuje konec řetězce.

Escape sekvence

Způsob, jak zapsat speciální znaky v kódu pomocí zpětného lomítka:

  • `\n` – Nový řádek.
  • `\t` – Tabulátor.
  • `\uXXXX` – Zápis konkrétního znaku pomocí jeho Unicode hexadecimálního kódu.

4. Operace se znaky

Protože je `char` vnitřně číslo, lze s ním provádět aritmetické operace:

  • Inkrementace: Pokud k `'A'` (65) přičteme 1, získáme `'B'` (66).
  • Porovnávání: Znaky lze řadit (např. `'a' > 'A'` je v ASCII pravdivý výraz, protože malá písmena mají vyšší číselnou hodnotu).

5. Char vs. String

Je důležité rozlišovat mezi těmito dvěma pojmy:

  • Char: Jeden prvek, obvykle v jednoduchých uvozovkách (`'x'`).
  • String: Kolekce (pole) znaků, obvykle v dvojitých uvozovkách (`„text“`). String je v paměti ukončen buď speciálním znakem (null-terminated), nebo má délku uloženou v hlavičce.

Související články:

Tagy: programming char encoding ascii unicode data-types

it/sw/char.txt · Poslední úprava: autor: admin