Podcast
Dvojková sústava, známa aj ako binárna sústava, je základom všetkých moderných digitálnych počítačov a elektronických zariadení. Používa iba dve číslice: 0 a 1. Pre študentov informatiky a digitálnej techniky je pochopenie aritmetických operácií v dvojkovej sústave kľúčové. Tento článok prináša rozbor sčítania a odčítania v dvojkovej sústave, ktoré sú základom pre zložitejšie výpočty.
Sčítanie binárnych čísel a odčítanie v dvojkovej sústave
Sčítanie binárnych čísel je podobné sčítaniu v desiatkovej sústave, avšak s menším počtom číslic. Operácia sa vykonáva stĺpcovou metódou, začínajúc od najmenej významného bitu (najpravejšej číslice) a postupujúc smerom doľava. Ak súčet v danom stĺpci prekročí 1, nastane tzv. prenos (carry) do nasledujúceho vyššieho rádu.
Základné pravidlá pre sčítanie dvoch binárnych číslic sú:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10₂ (čo znamená 0 a prenos 1 do vyššieho rádu)
- 1 + 1 + 1 = 11₂ (čo znamená 1 a prenos 1 do vyššieho rádu, ak sčítame tri jednotky)
Príklad sčítania binárnych čísel
Sčítajme binárne čísla 1011₂ (čo je 11 v desiatkovej sústave) a 1101₂ (čo je 13 v desiatkovej sústave).
1011₂
+ 1101₂
-------
Postupujeme sprava doľava:
- Najpravejší stĺpec: 1 + 1 = 10₂. Zapíšeme 0 a prenesieme 1.
- Druhý stĺpec sprava: 1 (prenos) + 1 + 0 = 10₂. Zapíšeme 0 a prenesieme 1.
- Tretí stĺpec sprava: 1 (prenos) + 0 + 1 = 10₂. Zapíšeme 0 a prenesieme 1.
- Štvrtý stĺpec sprava: 1 (prenos) + 1 + 1 = 11₂. Zapíšeme 1 a prenesieme 1.
Výsledok je 11000₂. Pre kontrolu, 11 + 13 = 24 v desiatkovej sústave, a 11000₂ = 24.
Pretečenie (Overflow) pri sčítaní
Počítače pracujú s číslami s pevnou dĺžkou bitov (napríklad 8-bitové). Ak výsledok aritmetickej operácie prekročí maximálnu hodnotu, ktorú môže daný počet bitov reprezentovať, nastane pretečenie (overflow). To znamená, že najvýznamnejší prenos (carry out) z posledného stĺpca sa stratí.
Napríklad, pre 8-bitové nepodpísané čísla je maximálna hodnota 2⁸ - 1 = 255. Ak sčítame 150 (10010110₂) a 120 (01111000₂):
¹¹¹¹¹¹
10010110₂ (150)
+ 01111000₂ (120)
-----------
100001110₂
Výsledok má 9 bitov. V 8-bitovom registri by sa najľavejší bit stratil. Skutočný súčet je 270. V 8-bitovom registri by sa uložilo len 00001110₂, čo je 14 v desiatkovej sústave. Simulácia sčítania jasne indikuje stav pretečenia, čo umožňuje študentom experimentovať a vidieť dopad na výsledok.
Over si, čo už vieš
Test · 20 otázok · prvé 3 zadarmo
Precvič si to na kartičkách
14 kartičiek · prvé 3 zadarmo bez účtu
Ťukni na otočenie · Potiahni na navigáciu
Odčítanie binárnych čísel pomocou dvojkového doplnku
Priame odčítanie binárnych čísel je zložité. V digitálnych systémoch sa odčítanie často realizuje pomocou sčítania s tzv. dvojkovým doplnkom (two's complement). Táto metóda umožňuje previesť odčítanie na sčítanie, čo zjednodušuje návrh hardvéru.
Postup pre odčítanie A - B pomocou dvojkového doplnku:
- Nájdite jednotkový doplnok (one's complement) čísla B: Invertujte všetky bity čísla B (0 sa zmení na 1, 1 na 0).
- Nájdite dvojkový doplnok čísla B: K jednotkovému doplnku čísla B pripočítajte 1.
- Pripočítajte dvojkový doplnok čísla B k číslu A: A + (dvojkový doplnok B).
- Interpretujte výsledok:
- Ak vznikne prenos z najvýznamnejšieho bitu (carry out), tento prenos sa ignoruje. Výsledok je kladný a je priamo výsledkom odčítania.
- Ak prenos z najvýznamnejšieho bitu nevznikne, výsledok je záporný. Pre získanie skutočnej hodnoty je potrebné nájsť dvojkový doplnok výsledku a pred neho pridať znamienko mínus.
Príklad odčítania: 13 - 6 v dvojkovej sústave
Odčítajme 13 - 6 v 8-bitovom formáte (13 desiatkovo = 00001101₂; 6 desiatkovo = 00000110₂).
- Číslo A: 00001101₂ (13)
- Číslo B: 00000110₂ (6)
Krok 1: Nájdite jednotkový doplnok čísla B (00000110₂): Invertovaním bitov dostaneme 11111001₂.
Krok 2: Nájdite dvojkový doplnok čísla B: K 11111001₂ pripočítame 1: 11111001₂ + 00000001₂ = 11111010₂.
Krok 3: Pripočítajte dvojkový doplnok čísla B k číslu A:
¹¹¹¹¹
00001101₂ (13)
+ 11111010₂ (dvojkový doplnok 6)
-----------
100000111₂
Krok 4: Interpretujte výsledok: Vznikol prenos z najvýznamnejšieho bitu (najľavejšia 1). Tento prenos ignorujeme. Zostávajúci 8-bitový výsledok je 00000111₂. Prevodom na desiatkovú sústavu dostaneme 7. To je správny výsledok pre 13 - 6 = 7.
Príklad odčítania s negatívnym výsledkom: 6 - 13
Odčítajme 6 - 13 v 8-bitovom formáte (6 desiatkovo = 00000110₂; 13 desiatkovo = 00001101₂).
- Číslo A: 00000110₂ (6)
- Číslo B: 00001101₂ (13)
Krok 1: Nájdite jednotkový doplnok čísla B (00001101₂): Invertovaním bitov dostaneme 11110010₂.
Krok 2: Nájdite dvojkový doplnok čísla B: K 11110010₂ pripočítame 1: 11110010₂ + 00000001₂ = 11110011₂.
Krok 3: Pripočítajte dvojkový doplnok čísla B k číslu A:
¹¹
00000110₂ (6)
+ 11110011₂ (dvojkový doplnok 13)
-----------
11111001₂
Krok 4: Interpretujte výsledok: Nevznikol prenos z najvýznamnejšieho bitu. To znamená, že výsledok je záporný. Pre získanie skutočnej hodnoty musíme nájsť dvojkový doplnok výsledku 11111001₂.
- Jednotkový doplnok 11111001₂ je 00000110₂.
- Dvojkový doplnok je 00000110₂ + 1 = 00000111₂.
Výsledok je -00000111₂, čo je -7 v desiatkovej sústave. To je správny výsledok pre 6 - 13 = -7.
Bežné chyby a nedorozumenia pri binárnej aritmetike
Pri sčítaní a odčítaní v dvojkovej sústave sa študenti často stretávajú s niekoľkými bežnými chybami:
- Zámena desiatkovej a dvojkovej sústavy: Chyby nastávajú pri prenosoch, napríklad 1 + 1 = 10₂ a nie 2.
- Nesprávne spracovanie prenosov: Chyba v jednom stĺpci sa prenesie do celého výsledku.
- Nepochopenie pretečenia (overflow): Pretečenie nie je len matematická chyba, ale reálny problém v počítačových systémoch, ktorý môže viesť k nesprávnym výsledkom. Je dôležité rozlišovať medzi prenosom (carry) a pretečením (overflow).
- Chyby pri výpočte dvojkového doplnku: Nesprávne invertovanie bitov alebo zabudnutie pripočítať 1 sú časté zdroje chýb.
- Zabudnutie na znamienko pri odčítaní: Ak pri odčítaní pomocou dvojkového doplnku nevznikne prenos, výsledok je záporný a vyžaduje ďalšiu konverziu.
Interakcia so simuláciou pre lepšie pochopenie
Interaktívna simulácia sčítania 8-bitových binárnych čísel poskytuje praktickú skúsenosť s týmito konceptmi. Študenti môžu zadávať ľubovoľné 8-bitové binárne čísla a pozorovať, ako prebieha sčítanie krok za krokom. Simulácia vizualizuje prenosy (carries), ukazuje kedy a ako sa generujú a šíria, a zobrazuje finálny 8-bitový súčet. Umožňuje tiež experimentovať s rôznymi číslami a vidieť, kedy dochádza k pretečeniu a aký je jeho dopad. To pomáha pochopiť, ako počítače vykonávajú základné aritmetické operácie a prečo je dôležité brať do úvahy obmedzenú dĺžku bitov.
FAQ – Často kladené otázky k binárnej aritmetike
Ako funguje prenos (carry) pri sčítaní v dvojkovej sústave?
Prenos (carry) funguje podobne ako v desiatkovej sústave. Keď je súčet dvoch bitov 10₂ (teda 2 v desiatkovej sústave), zapíše sa 0 a 1 sa prenesie do vyššieho rádu (nasledujúceho stĺpca). Tento prenesený bit sa potom pripočíta k bitom v tomto vyššom ráde.
Aký je rozdiel medzi prenosom (carry) a pretečením (overflow)?
Prenos (carry) je bežná súčasť sčítania, keď súčet v danom bitovom stĺpci prekročí maximálnu hodnotu (1). Pretečenie (overflow) nastane, keď výsledok celej aritmetickej operácie prekročí maximálnu hodnotu, ktorú môže reprezentovať daný počet bitov (napr. 8-bitový register), čo vedie k strate najvýznamnejšieho bitu a nesprávnemu výsledku.
Prečo sa pri odčítaní používa dvojkový doplnok?
Dvojkový doplnok sa používa na zjednodušenie odčítania v digitálnych systémoch. Umožňuje previesť odčítanie na sčítanie, takže ten istý hardvérový obvod môže vykonávať obe operácie (sčítanie aj odčítanie). To šetrí náklady a zložitosť návrhu hardvéru.
Ako zistím, či je výsledok odčítania pomocou dvojkového doplnku záporný?
Po pripočítaní dvojkového doplnku menšiteľa k menšencovi skontrolujte, či vznikol prenos z najvýznamnejšieho bitu. Ak áno, výsledok je kladný. Ak prenos nevznikol, výsledok je záporný. Pre jeho správnu hodnotu je potrebné výsledok opäť doplniť dvojkovým doplnkom a pridať znamienko mínus.