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