Dvojková číselná sústava

DEC BIN
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
15 1111

Dvojková číselná sústava, novšie tiež binárna číselná sústava (z lat. bis – dvakrát) je číselná sústava, ktorá zapisuje hodnoty pomocou dvoch symbolov 0 a 1. Konkrétnejšie hovoríme o pozičnej číselnej sústave so základom dva. Vďaka jednoduchej implementácii v elektronických obvodoch (vypnuté a zapnuté) používajú dvojkovú sústavu prakticky všetky súčasné číslicové počítače. Jednotlivé cifry (0, 1) sa nazývajú bit, čo je základná jednotka informácie.

Prevod hodnôt

upraviť

Na prevod z jednej sústavy do inej možno použiť jednu z nasledovných metód:

Z binárnej do desiatkovej sústavy (substitučná metóda)

upraviť

Ak máme zadané číslo v dvojkovej sústave pomocou číslic x0, x1... xk potom jeho hodnotu v desiatkovej sústave získame tak, že číslo rozpíšeme v dvojkovej sústave na polynóm a potom ho vyčíslime v desiatkovej:

 

Príklad:

(11010110)B = 1 · 27 + 1 · 26 + 0 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 =
= 1 · 128 + 1 · 64 + 0 · 32 + 1 · 16 + 0 · 8 + 1 · 4 + 1 · 2 + 0 · 1 = 128 + 64 + 16 + 4 + 2 = 214

Číslo 11010110 v dvojkovej sústave je 214 v desiatkovej sústave (stačí sčítať tie sčítance, ktoré sú násobené 1).

Z desiatkovej do binárnej sústavy (metóda delenia základom)

upraviť

Ak chceme previesť číslo z desiatkovej sústavy do dvojkovej sústavy, musíme číslo deliť základom sústavy – číslom 2, až pokiaľ nedostaneme podiel rovný nule. Po každom delení zapíšeme zvyšok, pričom zvyšok po prvom delení je cifra najnižšieho (nultého) rádu, zvyšok po druhom delení udáva cifru prvého rádu atď.

Príklad:

215 : 2 = 107;  zv. 1
107 : 2 = 53; zv. 1
53 : 2 = 26; zv. 1
26 : 2 = 13; zv. 0
13 : 2 = 6; zv. 1
6 : 2 = 3; zv. 0
3 : 2 = 1; zv. 1
1 : 2 = 0; zv. 1

Číslo 215 v desiatkovej sústave je 11010111 (zvyšky zapísané v poradí zdola hore) v binárnej sústave.

Z desiatkovej do binárnej sústavy (metóda násobenia základom)

upraviť

Ak chceme číslo zapísané v desiatkovej sústave vyjadriť v dvojkovej sústave, rozložíme ho na súčet postupne znižujúcich sa mocnín dvojky a číslicou 1 alebo 0 zaznamenáme ich výskyt alebo absenciu. Napríklad pri čísle 215 postupujeme takto:

  1. Nájdeme najväčšiu mocninu dvojky, ktorá sa v čísle nachádza: 27 = 128 (28 je 256, čo je už viac ako 215). Zapíšeme 1.
  2. Potom od čísla 215 odčítame 128 a zisťujeme, či je rozdiel väčší ako najbližšia nižšia mocnina dvoch 26 = 64; 215 – 128 = 87. Je. Výskyt zase zapíšeme ako 1.
  3. Ďalej zisťujeme, či sa v čísle 87 – 64 = 23 vyskytuje 25 = 32. Keďže 32 je väčšie ako 23, v tom prípade napíšeme 0.
  4. Takto pokračujeme až po 20 = 1. Výsledkom je zápis v poradí v ako sme ho dostali: 110...

Príklad:

 215 = 128 + 64 + 0 + 16 + 0 + 4 + 2 + 1 =
= 1 · 27 + 1 · 26 + 0 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 1 · 20 = 11010111

Číslo 215 v desiatkovej sústave je 11010111 v binárnej sústave.

Kódovanie záporných čísel

upraviť

V dvojkovej číselnej sústave je možné záporné čísla reprezentovať viacerými spôsobmi, pričom medzi najčastejšie patria: priamy kód, inverzný kód a doplnkový kód.[1]

Priamy kód

upraviť

Zápis priamym kódom znamená, že znak + alebo − vložíme priamo do kódu čísla, ktoré zapisujeme. Prvý (najvýznamejší) bit čísla, ktoré zapisujeme teda dostane hodnotu podľa toho, či je číslo kladné alebo záporné. 0 na začiatku čísla znamená, že bude kladné a 1 znamená, že bude záporné. Táto metóda má svoju nevýhodu v tom, že hodnota, ktorú môžeme vyjadriť n-počtom bitov sa zmenší, keďže jeden bit používame na znamienko. Bez znamienka môžeme vyjadriť hodnoty od 0 po 2n−1, priamym zápisom  môžeme vyjadriť interval od −2n−1 po 2n−1.[2]

 
Najvýznamejší bit čísla, ktoré zapisujeme teda dostane hodnotu podľa toho, či je číslo kladné alebo záporné. 0 na začiatku čísla znamená, že bude kladné a 1 znamená, že bude záporné.

Inverzný kód

upraviť

Zápis inverzným kódom nadväzuje na zápis priamym kódom, ale rieši problém nižších hodnôt. Najvýznamejší bit stále vyjadruje znamienko čísla, ale zároveň má stále svoju číselnú hodnotu. Takže najvýznamejší bit čísla s n bitmi má hodnotu −(2n−1−1).[1]

 

 

0 0000 −0 1111
+1 0001 −1 1110
+2 0010 −2 1101
+3 0011 −3 1100
+4 0100 −4 1011
+5 0101 −5 1010
+6 0110 −6 1001
+7 0111 −7 1000

Doplnkový kód

upraviť

Doplnkový kód je často používaný a výhodný pri aritmetických operáciách s binárnymi číslami, pretože umožňuje využitie rovnakej logiky pre realizáciu inkrementácie, dekrementácie, sčítania, odčítania a násobenia pre kladné aj záporné čísla a netrpí problémom viacznačnej reprezentácie nuly.

Rovnako ako pri ostatných zápisoch, najvýznamnejší bit priamo reprezentuje znamienko (0 – kladné číslo alebo nula, 1 – záporné číslo). K celému zápisu čísla sa dostaneme tromi krokmi – v príklade nižšie je uvedený zápis čísla −28 v 8-bitovom dvojkovom doplnkovom kóde.[3]

1) Zapíšeme kladné číslo v dvojkovej sústave.

 

2) Číslo binárne znegujeme – jednotky prepíšeme na nuly a nuly na jednotky.

 

3) Pripočítame 1.

 

Výsledok:  

Aritmetické operácie

upraviť

V dvojkovej sústave používame základné operácie, ako v desiatkovej: sčítanie, odčítanie, násobenie a delenie.

Sčítanie

upraviť

Keďže v dvojkovej sústave pracujeme len s číslicami 0 a 1, existujú len 4 základné operácie sčítania.

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10  (0 a 1 zostala, prenáša sa do vyššieho rádu)

Sčítaním 1 a 1 vznikne 0 a 1 sa prenesie do ďalšieho stĺpca (vyššieho rádu). Tak isto, ako keď pri sčítaní v desiatkovej sústave prekročíme desať a zostane jeden.[4]

 
Ukážka sčítania v binárnej sústave

V tomto príklade prebehli nasledujúce operácie:

1 + 1 = 0, 1 zostala;

1 + 0 + 1 = 0, 1 zostala;

1 + 1 + 1 = 1, 1 zostala;

0 + 0 + 1 = 1 ;

0 + 1 = 1 .

Na úrovni hardvéru sa sčítanie čísel v dvojkovej sústave realizuje binárnou sčítačkou, tvoriaciou súčasť aritmeticko-logických jednotiek procesorov.

 
Strana z Leibnitzovej knihy „Explication de l'Arithmétique Binaire“, 1703

Prvý známy opis číselnej sústavy pozostávajúcej len z dvoch znakov zaviedol staroindický matematik Pingala v 3. storočí pred Kr. Táto sústava však neobsahovala nulu.

Binárny humor

upraviť
  • „Ľudí môžeme rozdeliť do 10 skupín – na tých, ktorí rozumejú dvojkovej sústave a tých, ktorí jej nerozumejú.“[5]
  • „Tu platí digitálna funkcia – jednotka alebo nula. Buď vyhrá alebo odíde…“ Ladislav Borbély (STV) Brazília – Mexiko, Pohár konfederácií 2013[6]

Referencie

upraviť
  1. a b Negative Binary Numbers | Binary Arithmetic | Electronics Textbook [online]. www.allaboutcircuits.com, [cit. 2020-12-17]. Dostupné online. (po anglicky)
  2. Signed Binary Numbers [online]. [Cit. 2020-12-14]. Dostupné online.
  3. Two's Complement [online]. www.cs.cornell.edu, [cit. 2020-12-17]. Dostupné online.
  4. Binary Addition and Subtraction [online]. Circuit Globe, 2016-09-29, [cit. 2020-12-17]. Dostupné online. (po anglicky)
  5. there are 10 types of people in this world, those who understand binary and those who dont [online]. Urban Dictionary, [cit. 2017-06-06]. Dostupné online. (po anglicky)
  6. BORBÉLY, Ladislav. výrok komentátora. http://www.sport.sme.sk/ninajovsvet/. Dostupné online [cit. 2017-06-06].

Pozri aj

upraviť

Iné projekty

upraviť

Externé odkazy

upraviť