Čo je pozičná číselná sústava
V desiatkovom čísle 4 095 nemá 4 hodnotu 4: má hodnotu 4 000, pretože stojí na mieste tisícov. Každá pozícia násobí číslicu mocninou 10 (1, 10, 100, 1 000…). To je pozičná sústava a základ je počet rôznych používaných číslic: v desiatkovej desať.
Binárna sústava funguje rovnako, ale so základom 2: existujú len 0 a 1 a každé miesto má dvojnásobnú hodnotu než predchádzajúce. Šestnástková používa základ 16: šestnásť číslic je 0 až 9 a písmená A až F a každé miesto má 16-násobnú hodnotu než predchádzajúce. Počítače pracujú v binárnej sústave, pretože obvod musí rozlišovať len dva stavy (vypnuté a zapnuté), a šestnástková sústava je skrátený zápis týchto bitov.
| Pozícia (sprava doľava) | Hodnota v binárnej | Hodnota v šestnástkovej |
|---|---|---|
| 1. | 1 | 1 |
| 2. | 2 | 16 |
| 3. | 4 | 256 |
| 4. | 8 | 4 096 |
| 5. | 16 | 65 536 |
| 6. | 32 | 1 048 576 |
| 7. | 64 | 16 777 216 |
| 8. | 128 | 268 435 456 |
Z binárnej na desiatkovú, ručne
Každú číslicu napíšete s hodnotou jej miesta a sčítate len miesta, kde je 1. Príklad s 1101: sprava doľava majú miesta hodnoty 1, 2, 4 a 8.
- Napíšte číslo a pod neho hodnotu každej pozície: 1 1 0 1 nad 8 4 2 1.
- Všimnite si, čo je na každom mieste: 1 na mieste osmičky, 1 na mieste štvorky, 0 na mieste dvojky a 1 na mieste jednotky.
- Ignorujte miesta, ktoré majú 0 (tu to na mieste dvojky).
- Sčítajte: 8 + 4 + 0 + 1 = 13. Teda 1101 v binárnej sústave je 13 v desiatkovej.
S viacerými číslicami je to rovnaké: 11111111 je 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, najväčšia hodnota, ktorá sa zmestí do 8 bitov. A 10110110 je 128 + 32 + 16 + 4 + 2 = 182.
Z desiatkovej na binárnu, postupným delením
Číslo delíte dvomi znova a znova a zapisujete zvyšok každého delenia (vždy 0 alebo 1), kým nedostanete podiel 0. Zvyšky prečítané zdola nahor sú binárne číslo. Príklad s 45:
- 45 ÷ 2 = 22, zvyšok 1
- 22 ÷ 2 = 11, zvyšok 0
- 11 ÷ 2 = 5, zvyšok 1
- 5 ÷ 2 = 2, zvyšok 1
- 2 ÷ 2 = 1, zvyšok 0
- 1 ÷ 2 = 0, zvyšok 1
Ak prečítate zvyšky zdola nahor, vyjde 101101. Na kontrolu sčítajte: 32 + 8 + 4 + 1 = 45.
Existuje alternatívna metóda, ktorú mnohí uprednostňujú: odčítať mocniny dvojky od najväčšej po najmenšiu. Pre 200: zmestí sa 128 (zostane 72), zmestí sa 64 (zostane 8), nezmestia sa 32, 16, ale 8 áno (zostane 0). Použité miesta sú 128, 64 a 8, takže 200 = 11001000.
Šestnástková sústava: šestnásť číslic a tabuľka poruke
Keďže neexistujú číslice pre 10 až 15, používajú sa písmená A, B, C, D, E a F. Jedna šestnástková číslica zodpovedá presne štyrom bitom («nibble»), a preto je taká výhodná: bajt, teda 8 bitov, sa zapíše len dvoma šestnástkovými číslicami.
Na prevod zo šestnástkovej na desiatkovú vynásobte každú číslicu mocninou 16 jej miesta a sčítajte. Napríklad 3F = 3 × 16 + 15 = 63 a A3 = 10 × 16 + 3 = 163.
| Desiatkovo | Binárne (4 bity) | Osmičkovo | Šestnástkovo |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Prečo sa používa šestnástková sústava: bajty, farby a adresy
Bajt je 8 bitov a ide od 0 do 255 (00000000 až 11111111). Písať bity ručne je pomalé a náchylné na chyby; v šestnástkovej sústave je ten istý bajt dva znaky, od 00 do FF. Na prevod z binárnej na šestnástkovú rozdeľte bity do skupín po štyroch sprava a každú skupinu nahraďte jej číslicou z tabuľky. Príklad: 11010111 sa rozdelí na 1101 a 0111, čo je D a 7, takže hodnota je D7. Desiatkovo je to 13 × 16 + 7 = 215.
Najznámejší prípad sú webové farby. V #FF8800 sú tri bajty: FF pre červenú (255), 88 pre zelenú (136) a 00 pre modrú (0). Je to sýta oranžová: všetka červená, o niečo viac než polovica zelenej a žiadna modrá. Šestnástková sústava sa objavuje aj v pamäťových adresách, chybových kódoch a sieťových identifikátoroch.
Z textu na binárne pomocou ASCII
Počítač ukladá každé písmeno ako číslo a toto číslo ako bity. V ASCII tabuľke je A 65, čo je v 8-bitovej binárnej sústave 01000001. Slovo «Hi» sú dve písmená: H je 72 (01001000) a i je 105 (01101001), takže sa zapíše 01001000 01101001. S «Hola» sú to 72, 111, 108 a 97, teda 01001000 01101111 01101100 01100001, alebo šestnástkovo 48 6F 6C 61.
Nástroj používa kódovanie UTF-8: pri základných písmenách angličtiny zaberá každý znak jeden 8-bitový bajt, ale ň, písmeno s diakritikou alebo emoji zaberajú viac bajtov, takže dajú viac než 8 bitov. Napríklad ñ sú dva bajty: 11000011 10110001 (C3 B1 šestnástkovo).
Ako to všetko urobiť s nástrojom
Prevodník «Binárne, desiatkové a hex» slúži na kontrolu vašich ručných výpočtov alebo na riešenie dlhých čísel bez chýb.
- Napíšte číslo do poľa jeho sústavy: «Desiatková (základ 10)», «Binárna (základ 2)», osmičková alebo «Šestnástková (základ 16)». Ostatné tri sa doplnia samy.
- Ak číslica nezodpovedá sústave (napríklad 2 v binárnej), nástroj vás upozorní.
- Pre text ho napíšte do poľa «Text» a pozrite si «Binárne (8 bitov na znak)» a šestnástkový zápis po bajtoch. Môžete tiež vložiť bity v skupinách po 8 a vrátiť sa k textu.
- Pre netypické sústavy použite «Ľubovoľná sústava (2 až 36)»: vyberiete zdrojovú sústavu, cieľovú a číslo.
Limity: prevádza len nezáporné celé čísla (bez desatinných miest a znamienka) a nepridáva za vás nuly na začiatku, takže ak chcete pevných 8 bitov, musíte doplniť ručne (13 je 00001101). Nič z toho, čo napíšete, neopustí váš prehliadač.
Časté chyby
- Čítať zvyšky opačne: pri postupnom delení je prvý zvyšok číslica úplne vpravo, nie úplne vľavo.
- Zabudnúť nuly na začiatku, keď sú potrebné: 13 je 1101, ale ako bajt 00001101. Záleží na tom, keď je dĺžka súčasťou údaja, ako pri farbe alebo sieťovej maske.
- Zamieňať písmeno O s nulou alebo šestnástkové B (11) s 8 pri kopírovaní. V šestnástkovej sústave majú písmená rovnakú hodnotu veľké aj malé, ale nie sú to isté ako číslica.
- Nechať pri prevode predponu 0x alebo znak #: sú to len značky, že ide o šestnástkové číslo, a pred vložením ich treba odstrániť.
- Myslieť si, že 10 v binárnej sústave je desať: je to dva. To isté «10» znamená 2, 10 alebo 16 podľa sústavy.
Vyriešené cvičenia na precvičenie
Skúste vyriešiť každé pred pohľadom na odpoveď a potom skontrolujte nástrojom.
- Previesť 10110110 na desiatkové a šestnástkové. Odpoveď: 128 + 32 + 16 + 4 + 2 = 182; v skupinách po štyroch 1011 0110 = B6.
- Previesť 200 na binárne a šestnástkové. Odpoveď: 11001000 a C8 (12 × 16 + 8 = 200).
- Previesť 7F na binárne. Odpoveď: 7 = 0111 a F = 1111, teda 01111111, čo je desiatkovo 127.
- Zapísať «OK» binárne. Odpoveď: O je 79 a K je 75, teda 01001111 01001011.
Často kladené otázky
Ako previediem 1101 z binárnej na desiatkovú?
Sčítate hodnoty miest, kde je 1: 8 + 4 + 1 = 13. Druhá číslica sprava je 0, takže dvojka sa nesčítava.
Koľko je 255 binárne a šestnástkovo?
255 je binárne 11111111 a šestnástkovo FF. Je to najväčšia hodnota, ktorá sa zmestí do 8-bitového bajtu.
Prečo šestnástková sústava používa písmená?
Pretože potrebuje šestnásť rôznych symbolov a desiatková dodáva len desať (0 až 9). Preto A je 10, B je 11, C je 12, D je 13, E je 14 a F je 15.
Koľko rôznych čísel sa dá zapísať 8 bitmi?
256, od 0 do 255. Všeobecne sa s n bitmi dá vyjadriť 2 na n hodnôt.
Prevádza nástroj záporné čísla alebo čísla s desatinnými miestami?
Nie, len nezáporné celé čísla. Pre text používa UTF-8, takže písmená s diakritikou a emoji dávajú viac než 8 bitov.