🔢 Číselné soustavy a jednotky dat

Vypínače a krabičky

O čem to je

Počítač neumí deset číslic jako ty. Uvnitř má jen miliardy malinkých „vypínačů“, které jsou buď zapnuté, nebo vypnuté. Všechno, co ukládá – fotky, hry, texty – je nakonec dlouhá řada takových stavů.

Když pochopíš, jak se s dvěma stavy počítá, pochopíš, proč má flash disk „divnou“ kapacitu, proč se barvy na webu píšou jako #FF8800 a proč 100 Mb/s internet stahuje jen asi 12 MB za sekundu.

Nové pojmy

Číselná soustavaZpůsob zápisu čísel. Říká, kolik různých číslic máme a kolikrát víc „váží“ každé další místo vlevo. Tomu počtu se říká základ soustavy.Desítková soustava má základ 10: číslice 0–9, místa jednotky, desítky, stovky…
Dvojková (binární) soustavaSoustava se základem 2. Má jen číslice 0 a 1. Každé místo vlevo má dvakrát větší váhu: 1, 2, 4, 8, 16…Dvojkové 101 = 1·4 + 0·2 + 1·1 = 5.
Bit (b)Jedna dvojková číslice – nejmenší kousek informace. Je to jeden „vypínač“: 0, nebo 1.Odpověď ano/ne se vejde do jednoho bitu.
Bajt (B)Skupina 8 bitů. Je to základní jednotka, ve které se měří velikost souborů a pamětí. Do jednoho bajtu se vejde 2⁸ = 256 různých hodnot (0–255).Jedno písmeno bez diakritiky zabere v textovém souboru obvykle 1 bajt.

Jak se čte dvojkové číslo

Představ si řadu krabiček. Každá krabička má svou hodnotu a hodnoty se zprava doleva zdvojnásobují. Do krabičky buď něco dáš (1), nebo ji necháš prázdnou (0). Číslo je součet hodnot plných krabiček.

1286432168421
00001101
11111111

První řádek: plné jsou krabičky 8, 4 a 1, tedy 8 + 4 + 1 = 13. Druhý řádek: všechny plné, 128 + 64 + … + 1 = 255. Víc se do 8 bitů nevejde.

Převeď dvojkové číslo 10110 do desítkové soustavy.
Napiš nad číslice váhy zprava: 16, 8, 4, 2, 1. Jedničky jsou pod 16, 4 a 2. Sečti: 16 + 4 + 2 = 22.

Šestnáctková soustava

Šestnáctková (hexadecimální) soustavaSoustava se základem 16. Číslice jsou 0–9 a pak písmena A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Jedna šestnáctková číslice nahradí přesně 4 bity.FF = 15·16 + 15 = 255, tedy jeden plný bajt. Píše se třeba 0xFF nebo FFh.

Dlouhé řady nul a jedniček se špatně čtou. Proto je programátoři zapisují šestnáctkově: rozdělí bity po čtyřech a každou čtveřici nahradí jednou číslicí. Tak vypadá třeba barva #FF8800 nebo MAC adresa síťové karty.

  • 0000 – 0
  • 1001 – 9
  • 1010 – A (10)
  • 1100 – C (12)
  • 1111 – F (15)

Zkus si u každé kartičky nejdřív sám sečíst váhy 8, 4, 2, 1 a pak ji otoč.

Převeď dvojkové 1101 0110 do šestnáctkové soustavy.
Rozděl na čtveřice: 1101 a 0110. 1101 = 8 + 4 + 1 = 13 = D. 0110 = 4 + 2 = 6. Výsledek D6 (desítkově 13·16 + 6 = 214).

Kilo, nebo kibi?

Předpony SI (k, M, G, T)Desítkové předpony jako u metrů: kilo = 1 000, mega = 1 000 000, giga = 10⁹, tera = 10¹².1 kB = 1 000 B, 1 GB = 1 000 000 000 B.
Binární předpony (Ki, Mi, Gi, Ti)Předpony podle mocnin dvou zavedené normou IEC: kibi = 2¹⁰ = 1 024, mebi = 2²⁰ = 1 048 576, gibi = 2³⁰.1 KiB = 1 024 B, 1 MiB = 1 024 KiB.

Výrobci disků počítají v desítkových předponách. Windows sice píše „GB“, ale počítá ve skutečnosti v GiB. Proto nový „1 TB“ disk ukáže jen asi 931 GB. Nic nechybí, jen se to měří jiným metrem.

Disk má 500 GB podle výrobce. Kolik GiB to je?
500 GB = 500 · 10⁹ B = 500 000 000 000 B. 1 GiB = 1 073 741 824 B. Vyděl: 500 000 000 000 : 1 073 741 824 ≈ 465,7 GiB.
✗Internet 100 Mb/s stáhne za sekundu 100 MB.
✓100 Mb/s = 100 megabitů za sekundu = 100 : 8 = 12,5 MB/s (megabajtů).

Malé b je bit, velké B je bajt. Rychlost sítě se udává v bitech, velikost souborů v bajtech, a bajt má 8 bitů.

Počítač pracuje ve dvojkové soustavě: bit je 0 nebo 1, bajt je 8 bitů (0–255). Šestnáctková číslice zastoupí 4 bity. kB = 1 000 B, KiB = 1 024 B, a b (bit) není B (bajt).

Převody krok za krokem

O čem to je

Technik musí umět rychle přepočítat adresu, masku sítě nebo velikost paměti mezi soustavami a jednotkami. Stačí k tomu tři postupy a jedna tabulka. Tady je máš jako recept.

Nové pojmy

Základ soustavyPočet různých číslic soustavy. Zároveň udává, kolikrát má každé místo vlevo větší váhu než místo vpravo.Desítková: základ 10, váhy 1, 10, 100. Dvojková: základ 2, váhy 1, 2, 4, 8.
Váha místaHodnota, kterou číslice na daném místě „násobí“. Je to základ umocněný na pořadí místa (počítáno zprava od nuly).V čísle 352 má trojka váhu 10² = 100, tedy znamená 300.
Bit a bajtBit (b) je jedna dvojková číslice, 0 nebo 1. Bajt (B) je 8 bitů.Soubor 3 B má 24 bitů.
Hexadecimální soustavaŠestnáctková soustava: číslice 0–9 a A–F (A = 10 … F = 15). Jedna číslice = 4 bity, dvě číslice = 1 bajt.2A = 2·16 + 10 = 42.

Postup 1: z libovolné soustavy do desítkové

Očísluj místa zprava od nuly.
Ke každému místu napiš váhu: základ na pořadí místa (u dvojkové 1, 2, 4, 8…, u šestnáctkové 1, 16, 256…).
Každou číslici vynásob její vahou.
Výsledky sečti.
Převeď šestnáctkové 1F4 do desítkové soustavy.
Váhy zprava: 1, 16, 256. 4·1 = 4, F = 15 → 15·16 = 240, 1·256 = 256. Součet 256 + 240 + 4 = 500.

Postup 2: z desítkové do dvojkové

Vyděl číslo dvěma a zapiš zbytek (0 nebo 1).
Podíl zase vyděl dvěma a zapiš zbytek.
Pokračuj, dokud nedostaneš podíl 0.
Zbytky přečti odspodu nahoru – to je dvojkové číslo.
Převeď desítkové 45 do dvojkové soustavy.
45 : 2 = 22 zb. 1; 22 : 2 = 11 zb. 0; 11 : 2 = 5 zb. 1; 5 : 2 = 2 zb. 1; 2 : 2 = 1 zb. 0; 1 : 2 = 0 zb. 1. Odspodu: 101101. Kontrola: 32 + 8 + 4 + 1 = 45.

Postup 3: mezi dvojkovou a šestnáctkovou

Tady se nic nedělí. Dvojkové číslo rozděl zprava po čtyřech bitech (vlevo případně doplň nuly) a každou čtveřici přepiš na jednu šestnáctkovou číslici. Opačně každou šestnáctkovou číslici rozepiš na 4 bity.

Doplň převody. Pomáhá napsat si nad bity váhy 8, 4, 2, 1.

Jednotky dat

Desítkově (SI)HodnotaBinárně (IEC)Hodnota
1 kB1 000 B1 KiB1 024 B
1 MB10⁶ B1 MiB2²⁰ B = 1 048 576 B
1 GB10⁹ B1 GiB2³⁰ B = 1 073 741 824 B
1 TB10¹² B1 TiB2⁴⁰ B
Soubor má 3 MiB. Kolik je to bajtů a kolik MB?
3 MiB = 3 · 1 048 576 = 3 145 728 B. V desítkových MB: 3 145 728 : 1 000 000 ≈ 3,15 MB.
Kolik sekund trvá stažení souboru 600 MB po lince 50 Mb/s (bez režie)?
Soubor v bitech: 600 MB · 8 = 4 800 Mb. Čas = 4 800 : 50 = 96 s.
✗Převod 13 do dvojkové: zbytky 1, 0, 1, 1 čtu shora → 1011.
✓Zbytky se čtou odspodu: 1101 (= 8 + 4 + 1 = 13).

První zbytek patří nejnižšímu místu (váha 1), proto je ve výsledku úplně vpravo. Výsledek si vždy zkontroluj zpětným převodem.

Do desítkové: číslice krát váha a sečíst. Do dvojkové: dělit dvěma a zbytky číst odspodu. Dvojková ↔ šestnáctková: po čtveřicích bitů. 1 B = 8 b, k = 1 000, Ki = 1 024.