Podcast na Poloviční a úplná sčítačka

Poloviční a Úplná Sčítačka: Podrobný Rozbor pro Studenty

Podcast

Binární sčítání a sčítačky0:00 / 7:05
0:001:00 zbývá
LukášVěděla jsi, že pro počítač může být výsledek 1 + 1 nula?
BarboraTo je skvělá otázka, Lukáši! A ano, je to tak. Většina lidí si myslí, že 1 + 1 je vždycky 2, ale v binárním světě počítačů je to jen polovina pravdy.
Kapitoly

Binární sčítání a sčítačky

Délka: 7 minut

Kapitoly

Mýtus o sčítání

Základy binárního sčítání

Poloviční sčítačka

Úplná sčítačka

Zpátky k přenosu

Jak funguje úplná sčítačka

Vícebitové sčítání v praxi

Shrnutí a závěr

Přepis

Lukáš: Věděla jsi, že pro počítač může být výsledek 1 + 1 nula?

Barbora: To je skvělá otázka, Lukáši! A ano, je to tak. Většina lidí si myslí, že 1 + 1 je vždycky 2, ale v binárním světě počítačů je to jen polovina pravdy.

Lukáš: Počkat, jak polovina? To mi teď vrtá hlavou. Nula? Kam zmizela ta jednička?

Barbora: Nikam nezmizela, jen se... přesunula. A přesně o tom si dnes budeme povídat. Posloucháte Studyfi Podcast.

Lukáš: Dobře, tak mě do toho zasvěť. Jak tedy počítače sčítají, když ne stylem 1 + 1 = 2?

Barbora: Skvěle. Počítače používají binární soustavu, tedy jen nuly a jedničky. Sčítání je pro ně základ. A pravidla jsou vlastně jednoduchá. 0 + 0 je 0. 0 + 1 je 1.

Lukáš: Zatím to dává smysl, to je jako v desítkové soustavě.

Barbora: Přesně. Zvrat přichází u 1 + 1. Výsledek je totiž 10 v binární soustavě. To znamená, že součet je 0 a jedničku si přenášíme do dalšího, vyššího řádu. Stejně jako když v desítkové sčítáš 9 + 1.

Lukáš: Aha! Takže ta nula je „součet“ a ta přesunutá jednička je „přenos“?

Barbora: Přesně tak! V informatice tomu říkáme Sum, tedy součet, a Carry, tedy přenos. A na tomhle principu fungují speciální obvody, kterým říkáme sčítačky.

Lukáš: Dobře, takže sčítačka je nějaký hardware, který tohle dělá automaticky?

Barbora: Ano. Ten nejjednodušší typ se jmenuje poloviční sčítačka, neboli Half Adder. Je to obvod, který má dva vstupy, A a B, pro dvě jednobitová čísla, která chceme sečíst.

Lukáš: A výstupy má taky dva? Jeden pro součet a jeden pro ten přenos?

Barbora: Bingo! Výstup S jako Sum a C jako Carry. Když sečteš 1 a 1, obvod ti na výstupu S dá 0 a na výstupu C ti dá 1.

Lukáš: Chápu. Takže umí sečíst dva bity. Ale co když potřebuju sečíst delší čísla? Zdá se mi to trochu... poloviční.

Barbora: To jsi trefil! Proto se jmenuje poloviční. Má totiž jedno velké omezení — neumí zpracovat přenos z předchozího, nižšího řádu. Je to jako začínat sčítání od nuly, ale ignorovat, jestli ti z minulého sloupce něco zbylo.

Lukáš: Dobře, takže poloviční sčítačka je super na první bit, ale dál už je ztracená. Co s tím?

Barbora: Na to máme jejího chytřejšího brášku — úplnou sčítačku, neboli Full Adder. A ta už na nic nezapomíná.

Lukáš: Jak to myslíš?

Barbora: Úplná sčítačka má tři vstupy. Dva pro sčítance A a B, stejně jako ta poloviční... ale má i třetí, jmenuje se Cin, neboli Carry-in. A to je přesně ten přenos z předchozího řádu.

Lukáš: Takže umí sečíst tři věci najednou? Dvě čísla a k tomu zbytek z minula?

Barbora: Přesně! Představ si, že sčítáš 1 + 1 a ještě ti přišel přenos 1 z předchozího sloupce. To je dohromady 3. V binární soustavě je to 11. Takže úplná sčítačka ti dá součet S = 1 a přenos dál, Cout, taky 1.

Lukáš: Takže abychom to shrnuli — poloviční sčítačka startuje proces a úplné sčítačky pak pokračují v řadě za sebou a předávají si ten přenos jako štafetu?

Barbora: Lepší přirovnání bych nenašla! Přesně takhle počítač sčítá i dlouhá čísla. Prostě spojí spoustu úplných sčítaček za sebe.

Lukáš: Tak jo, Boro. Poloviční sčítačka z minula byla super, ale měla jeden háček. Co když potřebujeme přičíst i ten přenos z předchozího sloupce, to „jedna dál“?

Barbora: Přesně tak, Lukáši! A na to máme hrdinu dnešního dílu: úplnou sčítačku. Ta má tři vstupy: A, B a právě ten přenos z předchozího řádu, kterému říkáme Cin.

Lukáš: Takže teď už můžeme sčítat jako na papíře. Jak to funguje uvnitř? Je to zase nějaká změť hradel?

Barbora: Je to hlavně chytrá kombinace. Finální součet S je A XOR B XOR Cin. A ten nový přenos dál, Cout, je sice vzorec, který vypadá složitě, ale dává smysl.

Lukáš: Jsem napnutý!

Barbora: V podstatě vezmeš přenos, který vznikne z A a B, a k němu přičteš pomocí OR přenos, který vznikne ze součtu A a B s přenosem Cin. Je to geniální.

Lukáš: Páni. Ale víš co je na tom nejlepší? Prý se dá postavit ze dvou polovičních sčítaček a jednoho OR hradla. To je jako skládat LEGO.

Barbora: Přesně! První poloviční sčítačka sečte A a B. Její součet pak jde do druhé poloviční sčítačky spolu se vstupem Cin. A přenosy z obou spojíme. Je to krásný příklad modularity v praxi.

Lukáš: Dobře, takže teď umíme sečíst jeden sloupec i s přenosem. Jak z toho ale uděláme sčítačku pro vícemístná čísla, třeba 4bitová nebo 8bitová?

Barbora: Jednoduše je zřetězíme! Spojíme je do kaskády. Výstupní přenos, Cout, z jedné sčítačky se stane vstupním přenosem, Cin, pro další sčítačku ve vyšším řádu.

Lukáš: Takže je to taková matematická štafeta, kde si bity předávají kolík v podobě přenosu?

Barbora: To je skvělá analogie! Přesně tak. Pro sčítání dvou 2bitových čísel, třeba A1A0 a B1B0, tak použijeme jednu poloviční sčítačku pro ten nejméně významný bit...

Lukáš: ...a jednu úplnou sčítačku pro ten významnější bit, která dostane ten přenos od té první. Chápu!

Barbora: Vidíš! Takže když sečteme třeba 01 a 11, což je desítkově 1 + 3... první sčítačka dá 1+1, součet je 0 a přenos 1. Druhá sčítačka pak sečte 0+1 a ten přenos 1.

Lukáš: Což je zase součet 0 a přenos 1. Takže výsledek je... 100. Čtyři! Perfektně to sedí.

Barbora: Je to tak. A stejným principem bychom poskládali i 4bitovou, 8bitovou nebo klidně 64bitovou sčítačku, kterou máte v procesoru. Prostě řetězíte další a další úplné sčítačky.

Lukáš: Takže od jednoduchých logických hradel, přes poloviční a úplné sčítačky až po sčítání velkých čísel... všechno to do sebe krásně zapadá. Úžasné. Díky moc, Boro, za skvělé vysvětlení.

Barbora: Já děkuji, Lukáši. Bylo to super.

Lukáš: A děkujeme i vám, že jste poslouchali Studyfi Podcast. Doufáme, že teď pro vás budou digitální obvody o něco jasnější. Mějte se fajn a uslyšíme se u dalšího dílu!