Prevodník číselných sústav

Prevod čísla z dvojkovej, osmičkovej, desiatkovej alebo šestnástkovej sústavy do všetkých ostatných naraz – aj s postupom krok za krokom, aký chcú v škole. Zvládne záporné aj desatinné čísla a ľubovoľný základ 2 – 36. Zadarmo a priamo vo vašom prehliadači – nič sa nikam neodosiela.

Príklady:
Zadané číslo je:
Výsledok vo všetkých sústavách
Dvojková (2)
–
Osmičková (8)
–
Desiatková (10)
–
Šestnástková (16)
–
–

Všetky sústavy naraz – aj s postupom

Dvojková, osmičková, desiatková, šestnástková aj základ 2 – 36 • Postup krok za krokom • Záporné, desatinné aj obrovské čísla • Všetko v prehliadači

Čo sú číselné sústavy

Číselná sústava je spôsob, ako zapísať číslo pomocou číslic. Bežne používame desiatkovú sústavu s číslicami 0 – 9, no počítače pracujú v dvojkovej (binárnej), kde existujú len 0 a 1, a programátori si ju skracujú šestnástkovou (hexadecimálnou) či osmičkovou. Všetky sú pozičné: hodnota číslice závisí od jej miesta. V čísle 255 znamená prvá päťka päťdesiat a druhá päť, lebo každá pozícia je mocnina základu – pri desiatkovej sústave 1, 10, 100, pri dvojkovej 1, 2, 4, 8, 16…

Základ sústavy hovorí, koľko číslic má a kedy sa „prenáša jednotka“: v dvojkovej sústave po dvoch (1 + 1 = 10₂), v šestnástkovej po šestnástich (F + 1 = 10₁₆). Hodnota čísla sa však nemení – 255, 11111111₂, 377₈ aj FF₁₆ je stále to isté množstvo. Prevodník vyššie ukazuje presne toto: jedno číslo vo všetkých zápisoch naraz. Mimochodom, rímske čísla sú príkladom nepozičnej sústavy – X znamená desať bez ohľadu na miesto.

SústavaZákladČísliceKde sa používa
Dvojková (binárna)20 a 1všetko v počítači – bity, bajty, logické obvody
Osmičková (oktálová)80 – 7práva súborov v Linuxe (chmod 755), staršie systémy
Desiatková (dekadická)100 – 9bežné počítanie – máme desať prstov
Šestnástková (hexadecimálna)160 – 9 a A – Ffarby na webe (#FF0000), adresy v pamäti, MAC adresy, hashe

Ako prevodník používať

Napíšte číslo a prevodník ho vypíše v dvojkovej, osmičkovej, desiatkovej a šestnástkovej sústave aj v ľubovoľnej ďalšej so základom 2 – 36. Sústavu zadaného čísla spozná podľa zápisu – predpony 0x, 0b, 0o, indexu ako v učebnici 1010₂, (1010)₂ či 1010(2) alebo podľa písmen A – F; číslo bez označenia berie ako desiatkové, prepínačom Dec/Bin/Okt/Hex to kedykoľvek zmeníte. Záporné čísla píšte s mínusom, desatinné s čiarkou, dlhé čísla pokojne s medzerami medzi skupinami číslic.

Pod výsledkom je postup prevodu krok za krokom – pozičný súčet do desiatkovej sústavy a tabuľka delenia so zvyškami do zvolenej sústavy (aj do inej so základom 2 – 36), pri desatinných číslach násobenie základom s vyznačenou periódou, presne tak, ako sa to učí na hodinách informatiky a matematiky. Výsledok si do úlohy skopírujete jedným klikom.

Dvojková sústava (binárna)

Dvojková sústava má základ 2 a jediné dve číslice: 0 a 1. Každá pozícia má hodnotu mocniny dvoch, takže 1011₂ = 1·8 + 0·4 + 1·2 + 1·1 = 11. Jedna dvojková číslica je bit (binary digit), osem bitov tvorí bajt – a do bajtu sa zmestí 2⁸ = 256 hodnôt, čiže čísla 0 až 255. Preto sa 255 objavuje všade: v RGB farbách, IP adresách aj v šestnástkovom FF.

Počítače dvojkovú sústavu nepoužívajú z rozmaru. Dva stavy – je napätie, nie je napätie – sa dajú spoľahlivo rozlíšiť aj pri rušení, lacno uložiť a jednoducho spracovať logickými obvodmi. Všetko ostatné, čísla, text, obrázky aj zvuk, je nakoniec len dlhý rad núl a jednotiek.

2⁰2¹2²2³2⁴2⁵2⁶2⁷2⁸2⁹2¹⁰2¹⁶2²⁰2³²
12481632641282565121 02465 5361 048 5764 294 967 296

Prevod z desiatkovej do dvojkovej sústavy (decimal to binary)

Najspoľahlivejší postup je delenie dvoma so zvyškami: číslo delíme dvoma, zapíšeme zvyšok (0 alebo 1) a s podielom pokračujeme, kým nie je nula. Zvyšky potom prečítame odspodu nahor. Pre číslo 25:

DeleniePodielZvyšok
25 : 2121
12 : 260
6 : 230
3 : 211
1 : 201

Odspodu nahor: 25 = 11001₂. Rýchlejšia alternatíva na menšie čísla je odčítanie mocnín dvoch: nájdite najväčšiu mocninu, ktorá sa do čísla zmestí (16), na jej pozíciu napíšte 1 a pokračujte so zvyškom (25 − 16 = 9 → 8 sa zmestí, zostane 1 → 4 nie, 2 nie, 1 áno). Jednotky sú teda na pozíciách 16, 8 a 1, nuly na 4 a 2: 25 = 16 + 8 + 1 = 11001₂. Prevodník vám tabuľku delenia vypíše pre každé číslo – stačí v postupe zvoliť Bin.

Prevod z dvojkovej do desiatkovej sústavy (binary to decimal)

Opačný smer je pozičný súčet: každú číslicu vynásobíme mocninou dvoch podľa jej pozície (sprava 2⁰ = 1, 2¹ = 2, 2² = 4, 2³ = 8…) a všetko sčítame. V praxi stačí sčítať mocniny na pozíciách, kde je jednotka:

11001₂ = 1·2⁴ + 1·2³ + 0·2² + 0·2¹ + 1·2⁰ = 16 + 8 + 0 + 0 + 1 = 25

Rovnaký postup funguje pre každú sústavu – len namiesto mocnín dvoch berieme mocniny osem či šestnásť. V programovacích jazykoch to za vás spraví jedna funkcia:

JazykDo dvojkovejZ dvojkovejŠestnástková
Pythonbin(25) → "0b11001"int("11001", 2) → 25hex(255) · int("FF", 16)
JavaScript(25).toString(2)parseInt("11001", 2)(255).toString(16) · parseInt("FF", 16)
Excel / Tabuľky Google=DEC2BIN(25)=BIN2DEC(11001)=DEC2HEX(255) · =HEX2DEC("FF")
C / C++bitset<8>(25)strtol("11001", NULL, 2)printf("%X", 255) · strtol("FF", NULL, 16)

Šestnástková sústava (hexadecimálna, hex)

Šestnástková sústava má základ 16, takže potrebuje šestnásť číslic: po deviatke nasledujú písmená A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Programátori ju milujú preto, že jedna šestnástková číslica je presne štvorica bitov – bajt sa zapíše dvoma znakmi (00 – FF) namiesto ôsmich núl a jednotiek. V kóde ju označuje predpona 0x: 0xFF = 255, 0x10 = 16.

DecBinHexDecBinHex
000000810008
100011910019
200102101010A
300113111011B
401004121100C
501015131101D
601106141110E
701117151111F

Prevod zo šestnástkovej do desiatkovej sústavy (hex to decimal)

Postup je rovnaký ako pri dvojkovej sústave, len s mocninami šestnástich (1, 16, 256, 4 096…) a s písmenami prepočítanými na čísla:

FF₁₆ = 15·16¹ + 15·16⁰ = 240 + 15 = 255
1A3₁₆ = 1·16² + 10·16¹ + 3·16⁰ = 256 + 160 + 3 = 419

Prevod z desiatkovej do šestnástkovej sústavy (decimal to hex)

Číslo delíme šestnástimi a zapisujeme zvyšky – zvyšky 10 až 15 prepíšeme na písmená A až F – a čítame ich odspodu nahor. Pre číslo 419:

DeleniePodielZvyšok
419 : 16263
26 : 16110 = A
1 : 1601

Odspodu nahor: 419 = 1A3₁₆. Medzi dvojkovou a šestnástkovou sústavou sa nedelí vôbec – stačí ísť po štvoriciach bitov: 1111 1111₂ → F F, 1010 0011₂ → A 3, presne podľa tabuľky vyššie. Rovnako cez dvojkovú sústavu prevediete osmičkové číslo na šestnástkové: 377₈ → 011 111 111 → 1111 1111 → FF₁₆. Prevodník túto skratku ukáže pod postupom.

Kde hex stretnete: farby na webe #FF0000 sú tri bajty R, G, B (zistí ich náš color picker), ASCII kódy znakov sa uvádzajú v hex (A = 41), rovnako MAC adresy, UUID, hashe súborov či adresy v pamäti pri ladení programov.

Osmičková sústava (oktálová)

Osmičková sústava používa číslice 0 – 7 a jedna osmičková číslica zodpovedá trom bitom (111₂ = 7). Dnes ju stretnete hlavne pri právach súborov v Linuxe: chmod 755 znamená rwx r-x r-x, lebo 7 = 111 (čítať, zapisovať, spúšťať) a 5 = 101 (čítať a spúšťať). V Pythone a JavaScripte ju označuje predpona 0o (0o755 = 493), v jazyku C nula na začiatku – 0755. Preto je v C zápis 010 osem, nie desať, čo dodnes mätie začiatočníkov.

Tabuľka číselných sústav 0 – 31

Prvých 32 čísel vo všetkých štyroch sústavách – hodí sa k úlohám aj ako ťahák. Všimnite si, že šestnástková číslica sa zmení vždy po 16 a osmičková po 8 číslach.

DecBinOktHexDecBinOktHex
000016100002010
111117100012111
2102218100102212
3113319100112313
41004420101002414
51015521101012515
61106622101102616
71117723101112717
8100010824110003018
9100111925110013119
10101012A2611010321A
11101113B2711011331B
12110014C2811100341C
13110115D2911101351D
14111016E3011110361E
15111117F3111111371F

Záporné a desatinné čísla

Na papieri má záporné číslo jednoducho mínus: −42 = −101010₂. Procesor však znamienko nemá kam napísať, preto používa dvojkový doplnok (two’s complement): v 8 bitoch je −42 zapísané ako 11010110, čiže 256 − 42 = 214. Najvyšší bit tak funguje ako znamienko a sčítanie záporných čísel beží tým istým obvodom ako sčítanie kladných. Prevodník pri zápornom čísle ukáže doplnok pre 8, 16, 32 aj 64 bitov. Funguje to aj opačne: dvojkové číslo s 8, 16, 32 alebo 64 číslicami (či šestnástkové s 2, 4, 8 alebo 16) prečíta aj ako číslo so znamienkom – 11010110₂ v dvojkovom doplnku je −42.

Desatinná časť sa prevádza opačne než celá: namiesto delenia ju násobíme základom a celé časti súčinov tvoria číslice za čiarkou. 0,625 · 2 = 1,25 → 1; 0,25 · 2 = 0,5 → 0; 0,5 · 2 = 1,0 → 1, teda 0,625 = 0,101₂. Nie každé desatinné číslo má v dvojkovej sústave konečný zápis – 0,1 je 0,000110011001100…₂ do nekonečna. Práve preto počítač pri výpočte 0,1 + 0,2 nedostane presne 0,3. Taký rozvoj je vždy periodický: prevodník v postupe ukáže, kde sa zvyšok zopakuje, a periódu označí pruhom – 0,1 = 0,00011₂.

Príklady na precvičenie s riešením

Skúste si ich najprv vypočítať sami. Riešenie rozbalíte kliknutím a tlačidlom pod ním si v prevodníku pozriete celý postup krok za krokom.

  1. Preveďte číslo 45 do dvojkovej sústavy.
    Riešenie

    Delíme dvoma: 45 : 2 = 22 zv. 1, 22 : 2 = 11 zv. 0, 11 : 2 = 5 zv. 1, 5 : 2 = 2 zv. 1, 2 : 2 = 1 zv. 0, 1 : 2 = 0 zv. 1. Zvyšky odspodu nahor: 101101₂ (kontrola: 32 + 8 + 4 + 1 = 45).

  2. Preveďte 110110₂ do desiatkovej sústavy.
    Riešenie

    Sčítame mocniny dvoch na pozíciách s jednotkou: 1·32 + 1·16 + 0·8 + 1·4 + 1·2 + 0·1 = 32 + 16 + 4 + 2 = 54.

  3. Preveďte číslo 100 do šestnástkovej sústavy.
    Riešenie

    100 : 16 = 6 zv. 4, 6 : 16 = 0 zv. 6. Odspodu nahor: 64₁₆ (kontrola: 6·16 + 4 = 100).

  4. Preveďte 2F₁₆ do desiatkovej sústavy.
    Riešenie

    F má hodnotu 15, takže 2·16 + 15·1 = 32 + 15 = 47.

  5. Preveďte 11011010₂ do šestnástkovej sústavy.
    Riešenie

    Bez delenia, po štvoriciach bitov sprava: 1101 = D, 1010 = A, spolu DA₁₆ (= 218).

  6. Preveďte 157₈ do dvojkovej sústavy.
    Riešenie

    Každú osmičkovú číslicu rozpíšeme na trojicu bitov: 1 = 001, 5 = 101, 7 = 111, spolu 001 101 111, teda 1101111₂ (= 111).

  7. Preveďte 0,375 do dvojkovej sústavy.
    Riešenie

    Násobíme dvoma: 0,375 · 2 = 0,75 → 0; 0,75 · 2 = 1,5 → 1; 0,5 · 2 = 1 → 1. Číslice zhora nadol: 0,011₂.

  8. Zapíšte −5 v 8-bitovom dvojkovom doplnku.
    Riešenie

    5 = 00000101, bity prevrátime na 11111010 a pripočítame 1: 11111011 (= 256 − 5 = 251).

  9. Preveďte 0,1 do dvojkovej sústavy. Pozor, chyták!
    Riešenie

    0,1 · 2 = 0,2 → 0; 0,2 · 2 = 0,4 → 0; 0,4 · 2 = 0,8 → 0; 0,8 · 2 = 1,6 → 1; 0,6 · 2 = 1,2 → 1 a znova 0,2 – od toho miesta sa číslice 0011 opakujú donekonečna: 0,00011₂ = 0,000110011…₂. Presne preto 0,1 + 0,2 v počítači nie je presne 0,3.

Binárny kód a text

Keď niekto hovorí o binárnom kóde, často myslí text zapísaný nulami a jednotkami. Funguje to cez kódy znakov: písmeno A má v tabuľke ASCII kód 65, čiže 01000001₂, a slovo „Ahoj“ je rad štyroch bajtov. Tento prevodník pracuje s číslami – text do binárneho kódu, hexu či späť prevedie naša ASCII tabuľka, ktorá zvládne aj slovenskú diakritiku v UTF-8. A keď potrebujete do textu zabaliť celý súbor, slúži na to Base64.

Časté otázky o číselných sústavách

Dvojková, šestnástková a osmičková sústava, postup prevodu aj zápisy 0x a 0b.

Čo je dvojková sústava a prečo ju používajú počítače?

Dvojková (binárna) sústava zapisuje každé číslo len číslicami 0 a 1 – každá pozícia je mocnina dvoch (1, 2, 4, 8, 16…). Počítače ju používajú preto, že jedna číslica, bit, zodpovedá najjednoduchšiemu fyzickému stavu: je napätie, nie je napätie. Osem bitov tvorí bajt, ktorý zapíše čísla 0 až 255.

Ako previesť číslo z desiatkovej do dvojkovej sústavy?

Delíme číslo dvoma a zapisujeme zvyšky, kým podiel nie je nula; zvyšky potom prečítame odspodu nahor. Napríklad 25 : 2 = 12 zv. 1, 12 : 2 = 6 zv. 0, 6 : 2 = 3 zv. 0, 3 : 2 = 1 zv. 1, 1 : 2 = 0 zv. 1 – odspodu 11001. Prevodník vyššie vám celú tabuľku delenia vypíše po kliknutí na Bin v postupe.

Ako previesť dvojkové číslo na desiatkové?

Každú číslicu vynásobíme mocninou dvoch podľa jej pozície sprava (2⁰ = 1, 2¹ = 2, 2² = 4…) a sčítame. Pre 11001 to je 1·16 + 1·8 + 0·4 + 0·2 + 1·1 = 25. Stačí teda sčítať mocniny dvoch na pozíciách, kde je jednotka.

Čo znamená 0x, 0b alebo 0o pred číslom?

Sú to predpony z programovania, ktoré určujú sústavu: 0x je šestnástková (0xFF = 255), 0b dvojková (0b1010 = 10) a 0o osmičková (0o755 = 493). V matematike sa sústava píše dolným indexom – 1010₂ alebo (1010)₂, FF₁₆. Prevodník rozumie obom zápisom a sústavu podľa nich nastaví sám.

Ako previesť hex na desiatkové číslo (hex to decimal)?

Písmená A – F majú hodnoty 10 – 15. Každú číslicu vynásobíme mocninou šestnástich podľa pozície a sčítame: FF = 15·16 + 15·1 = 255, 1A3 = 1·256 + 10·16 + 3·1 = 419. Opačne (decimal to hex) číslo delíme šestnástimi so zvyškami, zvyšky 10 – 15 zapíšeme písmenami.

Koľko je 11111111 v desiatkovej sústave a prečo sa 255 stále opakuje?

11111111 je 255 – najväčšie číslo, ktoré sa zmestí do jedného bajtu (8 bitov). Preto majú farby RGB zložky 0 – 255, IP adresy štyri čísla do 255 a šestnástkový zápis bajtu dve číslice 00 – FF. Do 16 bitov sa zmestí 65 535, do 32 bitov 4 294 967 295.

Na čo slúži osmičková sústava?

Osmičková sústava má číslice 0 – 7 a jedna osmičková číslica zodpovedá presne trom bitom. Najčastejšie ju stretnete pri právach súborov v Linuxe: chmod 755 znamená rwxr-xr-x, lebo 7 = 111, 5 = 101. V Pythone a JavaScripte ju označuje predpona 0o, v jazyku C samotná nula na začiatku (0755).

Zvládne prevodník záporné, desatinné a veľké čísla?

Áno. Záporné číslo zapíšte s mínusom – okrem bežného zápisu ukážeme aj dvojkový doplnok (two’s complement) v 8, 16, 32 a 64 bitoch, teda zápis, aký používajú procesory; naopak 8-, 16-, 32- či 64-bitové dvojkové číslo prečíta aj ako číslo so znamienkom. Desatinnú časť prevedie presne násobením základom (0,625 = 0,101₂) a pri nekonečnom zápise ukáže periódu: 0,1 = 0,0(0011)₂, čiže 0011 sa opakuje donekonečna. Celé čísla môžu mať tisíce číslic – počíta sa bez obmedzenia bežnej presnosti.

Ako prevediem text na binárny kód?

Text sa do dvojkovej sústavy prevádza po znakoch cez ich kódy – A má kód 65, teda 01000001. Tento prevodník pracuje s číslami; text na binárny kód, hex alebo späť prevedie naša ASCII tabuľka, ktorá zvládne aj slovenskú diakritiku v UTF-8.

Je prevodník zadarmo a bezpečný?

Áno. Všetko sa počíta vo vašom prehliadači – zadané čísla sa nikam neodosielajú ani neukladajú. Nástroj funguje aj bez pripojenia na internet, po načítaní stránky.

Pracujete s kódmi znakov? Vyskúšajte aj ASCII tabuľku a Base64 dekóder.