Hlavní obsah
Informatika – Počítače a internet
Binární čísla
📺 Chceš se raději učit o binárních číslech pomocí videonahrávek? Tak jednoduše tento článek přeskoč a pusť si videa.
Lidé obvykle vyjadřují čísla v desítkové soustavě. Napočítat do deseti je velmi jednoduché 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Jak jsme se nedávno dozvěděli, počítače reprezentují všechny informace v bitech. Pro znázornění čísel pouze s start text, 0, end text a start text, 1, end text, používají počítače dvojkovou číselnou soustavu. Zde je ukázka toho, jak to vypadá, když počítač počítá do deseti: start text, 0, end text, start text, 0, end text, start text, 0, end text, start text, 1, end text, start text, 0, end text, start text, 0, end text, start text, 10, end text, start text, 0, end text, start text, 0, end text, start text, 11, end text, start text, 0, end text, start text, 10, end text, start text, 0, end text, start text, 0, end text, start text, 101, end text, start text, 0, end text, start text, 110, end text, start text, 0, end text, start text, 111, end text, start text, 1, end text, start text, 0, end text, start text, 0, end text, start text, 0, end text, start text, 1, end text, start text, 0, end text, start text, 0, end text, start text, 1, end text, start text, 1010, end text.
Opakování: Čísla v desítkové soustavě
Dříve, než se ponoříme do fungování dvojkové soustavy, pojďme se podívat na našeho starého známého, na desítkovou soustavu. Když jsme se učili počítat, učili jsem se, že čísla nejvíce vpravo reprezentují "jednotky", pak následují "desítky" a "stovky", atd.
Jinými slovy se číslo nejvíce vpravo násobí číslem 1, číslo nalevo od něj se násobí číslem 10 a číslo dvě místa od něj se násobí číslem 100.
Pojďme si vizualizovat číslo 234:
2 | 3 | 4 |
---|---|---|
stovky | desítky | jednotky |
100 | 10 | 1 |
Když každou číslici vynásobíme dle jejího místa, vidíme, že 234 se rovná left parenthesis, 2, dot, 100, right parenthesis, plus, left parenthesis, 3, dot, 10, right parenthesis, plus, left parenthesis, 4, dot, 1, right parenthesis.
Můžeme o daných místech přemýšlet také z hlediska mocnin čísla deset. Místo pro jednotky představuje násobení 10, start superscript, 0, end superscript, místo pro desítky představuje násobení 10, start superscript, 1, end superscript a místo pro stovky představuje násobení 10, squared. Pro každé místo, o které se posuneme, násobíme danou číslici další mocninou čísla 10.
2 | 3 | 4 |
---|---|---|
stovky | desítky | jednotky |
100 | 10 | 1 |
10, squared | 10, start superscript, 1, end superscript | 10, start superscript, 0, end superscript |
Binární čísla
Dvojková soustava funguje stejně jako ta desítková. Jediný rozdíl spočívá v tom, že místo násobení číslice mocninou čísla 10, násobíme číslici mocninou čísla 2.
Podívejme se na desítkové číslo 1, které se binárně reprezentuje jako start text, 0, end text, start text, 0, end text, start text, 0, end text, start text, 1, end text:
start text, 0, end text | start text, 0, end text | start text, 0, end text | start text, 1, end text |
---|---|---|---|
8 | 4 | 2 | 1 |
2, cubed | 2, squared | 2, start superscript, 1, end superscript | 2, start superscript, 0, end superscript |
Je to totéž jako left parenthesis, 0, dot, 8, right parenthesis, plus, left parenthesis, 0, dot, 4, right parenthesis, plus, left parenthesis, 0, dot, 2, right parenthesis, plus, left parenthesis, 1, dot, 1, right parenthesis, nebo 0, plus, 0, plus, 0, plus, 1.
Dobrá, to asi nebylo těžké uhodnout - teď si dáme větší číslo!
Desítkové číslo 10 se binárně reprezentuje jako start text, 1010, end text:
start text, 1, end text | start text, 0, end text | start text, 1, end text | start text, 0, end text |
---|---|---|---|
8 | 4 | 2 | 1 |
2, cubed | 2, squared | 2, start superscript, 1, end superscript | 2, start superscript, 0, end superscript |
Je to totéž jako left parenthesis, 1, dot, 8, right parenthesis, plus, left parenthesis, 0, dot, 4, right parenthesis, plus, left parenthesis, 1, dot, 2, right parenthesis, plus, left parenthesis, 0, dot, 1, right parenthesis, nebo 8, plus, 0, plus, 2, plus, 0. Binární číslo start text, 1010, end text se skutečně rovná číšlu 10 v desítkové soustavě.
Pokud se ti to povedlo zjistit, blahopřeji! Pokud ne, je to zcela v pořádku: existují techniky, které ti pomohou mezi číselnými soustavami převádět, a když se tyto techniky naučíš, hodně ti to ulehčí práci.
Převod desítkového čísla na binární
Zde je můj oblíbený způsob převádění desítkových čísel na binární:
- Vezmi si kus papíru nebo tabuli.
- Pro každý z bitů nakresli pomlčku. Pokud je číslo menší než 16, nakresli 4 pomlčky. V opačném případě pro čísla do 255 nakresli 8 pomlček. Větší čísla vyžadují více bitů a chvilku to potrvá udělat je ručně, takže se zaměříme na menší čísla.
- Pod každou pomlčku napiš mocniny čísla 2 . Začni pod nejpravější pomlčkou, napíšeš 1, pak pokračuj v násobení číslem 2.
- Teď začni u pomlčky nejvíce vlevo a zeptej se "Je toto číslo větší nebo rovno hodnotě tohoto místa?" Pokud odpovíš ano, pak napiš u pomlčky 1 a odečti tuto hodnotu od čísla. Pokud odpovíš ne, napiš 0 a přejdi k další pomlčce.
- Pokračuj zleva doprava a udržuj si přehled o tom, kolik toho ještě musíš reprezentovat. Až budeš hotov, bude číslo převedeno na binární!
Zde je ukázka toho, jak převést desítkové číslo 6:
"Hmm, 6 je méně než 16, takže 4 bity budou postačovat..."
start fraction, divided by, 8, end fraction
start fraction, divided by, 4, end fraction
start fraction, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
"Hm, 6 je menší než 8, takže jako první napíšu 0..."
start fraction, 0, divided by, 8, end fraction
start fraction, divided by, 4, end fraction
start fraction, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
"6 je větší než 4, takže jako další napíšu 1..."
start fraction, 0, divided by, 8, end fraction
start fraction, 1, divided by, 4, end fraction
start fraction, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
"Ok, 6 - 4 = 2, takže musím stále reprezentovat 2. Poznamenám si to..."
start fraction, 0, divided by, 8, end fraction
start fraction, 1, divided by, 4, end fraction
start fraction, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
start text, left parenthesis, Z, b, y, with, \', on top, v, a, with, \', on top, colon, space, 2, right parenthesis, end text
"2 je rovno 2, takže jako další napíšu 1..."
start fraction, 0, divided by, 8, end fraction
start fraction, 1, divided by, 4, end fraction
start fraction, 1, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
"2 - 2 = 0, takže už není co reprezentovat!"
start fraction, 0, divided by, 8, end fraction
start fraction, 1, divided by, 4, end fraction
start fraction, 1, divided by, 2, end fraction
start fraction, divided by, 1, end fraction
start text, left parenthesis, Z, b, y, with, \', on top, v, a, with, \', on top, colon, space, 0, right parenthesis, end text
"Do posledního bitu doplním 0, protože už mám vše hotovo..."
start fraction, 0, divided by, 8, end fraction
start fraction, 1, divided by, 4, end fraction
start fraction, 1, divided by, 2, end fraction
start fraction, 0, divided by, 1, end fraction
V případě, že by tě to zajímalo: existuje pouze jeden způsob, jak reprezentovat libovolné číslo ve dvojkové soustavě, stejně jako je pouze jeden způsob, jak reprezentovat libovolné číslo v desítkové soustavě. Jakákoli technika, kterou pro převod desítkového čísla na binární číslo použiješ, by měla vést ke stejnému číslu.
Vyzkoušej si teď převést další číslo, buď pomocí naší techniky nebo podle sebe.
Vzorce u binárních čísel
V předešlých dvou otázkách byla převedena lichá čísla. V binární soustavě je na lichých číslech něco zajímavého. Zde je pro ukázku několik dalších lichých čísel:
Desítkové | Binární |
---|---|
3 | start text, 0, end text, start text, 0, end text, start text, 11, end text |
5 | start text, 0, end text, start text, 101, end text |
7 | start text, 0, end text, start text, 111, end text |
9 | start text, 10, end text, start text, 01, end text |
Vidíš nějaký vzorec?
Ve skutečnosti není potřeba převádět tato velká čísla do desítkové soustavy, aby se na otázku dalo odpovědět – stačí zkontrolovat pouze jednu informaci – poslední část čísla. Poslední část je vždy pro jednotky, a pokud je číslo liché, musí mít na místě pro jednotky 1. Ve dvojkové soustavě neexistuje způsob, jak vytvořit liché číslo bez místa pro jednotky, protože každé další místo je mocninou čísla 2. Tato znalost ti může pomoct lépe porozumět binárním číslům.
U binárních čísel se vyskytuje další zajímavý vzorec. Podívej se na to:
Desítkové | Binární |
---|---|
3 | start text, 11, end text |
7 | start text, 111, end text |
15 | start text, 1111, end text |
Každé z těchto desítkových čísel je nějaká mocnina 2 minus 1: 4, minus, 1, equals, 3, 8, minus, 1, equals, 7, 16, minus, 1, equals, 15. Pokud má binární číslo 1 na každém svém místě, pak se bude vždy rovnat největšímu číslu, které může být reprezentováno tímto počtem bitů. Pokud chceš k tomu číslu přičíst 1, musíš přidat další bit. Je to jako 9, 99 a 999 v desítkové soustavě.
Jak se ukazuje, nejvyšší číslo, které může být reprezentováno n počtem bitů, je stejné jako 2, start superscript, n, end superscript, minus, 1:
Bity (n) | Nejvyšší číslo | (2, start superscript, n, end superscript, minus, 1) |
---|---|---|
1 | 1 | left parenthesis, 2, start superscript, 1, end superscript, minus, 1, right parenthesis |
2 | 3 | left parenthesis, 2, squared, minus, 1, right parenthesis |
3 | 7 | left parenthesis, 2, cubed, minus, 1, right parenthesis |
4 | 15 | left parenthesis, 2, start superscript, 4, end superscript, minus, 1, right parenthesis |
Můžeš to celkem rychle spočítat za pomocí naší předchozí strategie. Existuje však ještě jedna strategie s ohledem na to, co jsme se právě naučili: můžeš spočítat počet bitů (5), vypočítat 2, start superscript, 5, end superscript jako 2, dot, 2, dot, 2, dot, 2, dot, 2, equals, 32, a pak odečíst 1.
Toto vše ti pomůže získat intuitivnější porozumění binárním číslům. Možná si nebudeš pamatovat úplně vše, ale to je v pořádku. Máš před sebou spoustu příležitostí na procvičování.
🙋🏽🙋🏻♀️🙋🏿♂️Máš k tomuto tématu nějaké dotazy? Rádi ti je zodpovíme — zeptej se v sekci pro dotazy níže!
Chceš se zapojit do diskuze?
Zatím žádné příspěvky.