Dvojková, desítková a šestnáctková soustava: jak mezi nimi převádět

Převod mezi soustavami působí jako kouzlo, dokud nepochopíte, že jde pořád o jednu myšlenku: každá číslice má hodnotu podle místa, které zaujímá. Naučíte se převádět ručně z dvojkové na desítkovou a z desítkové na dvojkovou, číst šestnáctkovou soustavu bez obav a překládat text na bity, s vyřešenými příklady a tabulkou 0 až 15 po ruce.

Aktualizováno:

Co je poziční soustava

V desítkovém čísle 4 095 nemá čtyřka hodnotu 4, ale 4 000, protože stojí na místě tisíců. Každá pozice násobí číslici mocninou 10 (1, 10, 100, 1 000…). To je poziční soustava a základ je počet různých číslic, které se používají: v desítkové soustavě deset.

Dvojková soustava funguje stejně, ale se základem 2: existují jen 0 a 1 a každé místo má dvojnásobnou hodnotu než to předchozí. Šestnáctková soustava má základ 16: šestnáct číslic je 0 až 9 a písmena A až F a každé místo má šestnáctinásobnou hodnotu než to předchozí. Počítače pracují ve dvojkové soustavě, protože obvod musí rozlišovat jen dva stavy (vypnuto a zapnuto), a šestnáctková soustava je zkrácený zápis těchto bitů.

Jakou hodnotu má které místo. Když si zapamatujete mocniny dvou až do 128, ušetří vám to téměř všechno počítání.
Pozice (zprava doleva)Hodnota ve dvojkové soustavěHodnota v šestnáctkové soustavě
1.11
2.216
3.4256
4.84 096
5.1665 536
6.321 048 576
7.6416 777 216
8.128268 435 456

Z dvojkové na desítkovou, ručně

Každá číslice se napíše s hodnotou svého místa a sečtou se jen místa, kde je jednička. Příklad s 1101: zprava doleva mají místa hodnoty 1, 2, 4 a 8.

  1. Napište číslo a pod něj hodnotu každé pozice: 1 1 0 1 nad 8 4 2 1.
  2. Všimněte si, co je na každém místě: jednička na místě osmičky, jednička na místě čtyřky, nula na místě dvojky a jednička na místě jedničky.
  3. Přeskočte místa, kde je nula (tady to na místě dvojky).
  4. Sečtěte: 8 + 4 + 0 + 1 = 13. Takže 1101 ve dvojkové soustavě je 13 v desítkové.

S více číslicemi je to totéž: 11111111 je 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, největší hodnota, která se vejde do 8 bitů. A 10110110 je 128 + 32 + 16 + 4 + 2 = 182.

Z desítkové na dvojkovou, postupným dělením

Číslo se opakovaně dělí dvěma a zapisuje se zbytek každého dělení (vždy 0 nebo 1), dokud nevyjde podíl 0. Zbytky přečtené zdola nahoru tvoří dvojkové číslo. Příklad s 45:

Přečteme-li zbytky zdola nahoru, vyjde 101101. Pro kontrolu sečtěte: 32 + 8 + 4 + 1 = 45.

Existuje i alternativní metoda, kterou mnozí preferují: odečítat mocniny dvou od největší po nejmenší. Pro 200: vejde se 128 (zbývá 72), vejde se 64 (zbývá 8), nevejde se 32 ani 16, ale vejde se 8 (zbývá 0). Použitá místa jsou 128, 64 a 8, takže 200 = 11001000.

Šestnáctková soustava: šestnáct číslic a tabulka po ruce

Protože neexistují číslice pro 10 až 15, používají se písmena A, B, C, D, E a F. Jedna šestnáctková číslice odpovídá přesně čtyřem bitům (jeden «nibble»), a proto je tak praktická: bajt o 8 bitech se zapíše jen dvěma šestnáctkovými číslicemi.

Chcete-li převést šestnáctkové číslo na desítkové, vynásobte každou číslici mocninou 16 svého místa a sečtěte. Například 3F = 3 × 16 + 15 = 63 a A3 = 10 × 16 + 3 = 163.

Od 0 do 15 ve čtyřech soustavách, které nástroj zobrazuje.
DesítkověDvojkově (4 bity)OsmičkověŠestnáctkově
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Proč se používá šestnáctková soustava: bajty, barvy a adresy

Bajt je 8 bitů a pohybuje se od 0 do 255 (00000000 až 11111111). Psát bity ručně je pomalé a náchylné k chybám; v šestnáctkové soustavě je tentýž bajt zapsán dvěma znaky, od 00 do FF. Chcete-li převést dvojkové číslo na šestnáctkové, rozdělte bity zprava do skupin po čtyřech a každou skupinu nahraďte číslicí z tabulky. Příklad: 11010111 se rozdělí na 1101 a 0111, což je D a 7, takže hodnota je D7. Desítkově je to 13 × 16 + 7 = 215.

Nejznámějším případem jsou webové barvy. V #FF8800 jsou tři bajty: FF pro červenou (255), 88 pro zelenou (136) a 00 pro modrou (0). Je to sytě oranžová: všechna červená, o něco víc než polovina zelené a žádná modrá. Šestnáctková soustava se objevuje také v adresách paměti, chybových kódech a síťových identifikátorech.

Z textu na dvojkový kód pomocí ASCII

Počítač ukládá každé písmeno jako číslo a toto číslo jako bity. V tabulce ASCII je A 65, což je ve dvojkové soustavě o 8 bitech 01000001. Slovo «Hi» jsou dvě písmena: H je 72 (01001000) a i je 105 (01101001), takže se zapíše 01001000 01101001. U slova «Hola» jde o 72, 111, 108 a 97, tedy 01001000 01101111 01101100 01100001, šestnáctkově 48 6F 6C 61.

Nástroj používá kódování UTF-8: u základních anglických písmen zabírá každý znak jeden bajt o 8 bitech, ale české písmeno s diakritikou, například č nebo ř, nebo emoji zabírá několik bajtů, takže dává víc než 8 bitů. Například ñ jsou dva bajty: 11000011 10110001 (C3 B1 šestnáctkově).

Jak to všechno udělat pomocí nástroje

Převodník «Binární, desítková a hex» slouží ke kontrole vašich ručních výpočtů nebo k bezchybnému zpracování dlouhých čísel.

  1. Napište číslo do pole jeho soustavy: «Desítková (základ 10)», «Dvojková (základ 2)», osmičková nebo «Šestnáctková (základ 16)». Ostatní tři se vyplní samy.
  2. Pokud číslice do soustavy nepatří (například 2 ve dvojkové), nástroj vás upozorní.
  3. U textu ho napište do pole «Text» a podívejte se na «Binární (8 bitů na znak)» a na šestnáctkový zápis po bajtech. Můžete také vložit bity po skupinách po 8 a vrátit se k textu.
  4. Pro méně obvyklé soustavy použijte «Libovolná soustava (od 2 do 36)»: zvolíte výchozí soustavu, cílovou soustavu a číslo.

Omezení: převádí jen nezáporná celá čísla (bez desetinných míst a znaménka) a nepřidává za vás nuly zleva, takže pokud chcete pevných 8 bitů, musíte doplnit ručně (13 je 00001101). Nic z toho, co napíšete, neopustí váš prohlížeč.

Časté chyby

Vyřešená cvičení k procvičení

Zkuste každé vyřešit, než se podíváte na odpověď, a poté zkontrolujte pomocí nástroje.

Často kladené otázky

Jak převedu 1101 z dvojkové na desítkovou?

Sečtete hodnoty míst, kde je jednička: 8 + 4 + 1 = 13. Druhá číslice zprava je nula, takže dvojka se nepřičítá.

Kolik je 255 ve dvojkové a šestnáctkové soustavě?

255 je ve dvojkové soustavě 11111111 a v šestnáctkové FF. Je to největší hodnota, která se vejde do bajtu o 8 bitech.

Proč šestnáctková soustava používá písmena?

Protože potřebuje šestnáct různých symbolů a desítková soustava dodává jen deset (0 až 9). Proto A má hodnotu 10, B 11, C 12, D 13, E 14 a F 15.

Kolik různých čísel lze zapsat pomocí 8 bitů?

256, od 0 do 255. Obecně lze pomocí n bitů vyjádřit 2 na n-tou hodnot.

Převádí nástroj záporná čísla nebo čísla s desetinnými místy?

Ne, jen nezáporná celá čísla. U textu používá UTF-8, takže písmena s diakritikou a emoji dávají víc než 8 bitů.