share: true
aliases:
- Bez názvu
complete: true
author: Petr
Číselné kódy
- Čísla se znaménkem
- aritmetické operace
- obvody pro posuvy, paralelní sčítání, MUX, dekodér
- Reprezentace Floatů
Záznam čísel
- převod 10 -> 2 dělíme 2, výsledek od nejnižšího bitu po nejvyšší
- za des čárkou násobím 2 a jedničku/nulu vysouvám do výsledku od nejnižšího bitu
- převod 2 -> podle pozice násobím a přičítám mocniny 2^ pozici.
- Čísla se ukládají v binárním kódu, je několik způsobů jak celá čísla interpretovat
- Čísla v počítači mají omezený rozsah, omezuje ho délka slova, bajt má 256 hodnot, 4 bity 16 hodnot...
Čísla bez znaménka
- Celý rozsah je využit pro čísla, v bloku je jen mantisa ( - data)
- Např. pro 8b byte je rozsah
- Nemá záporné čísla, špatně se počítá
- Při sčítání Carry out z nejvyššího řádu znamená, že výsledek není platný (moc velký)
Čísla se znaménkem
- Přímý kód
- Aditivní kód
- Doplňkový kód
- (Inverzní)
Přímý kód
- Nejvyšší bit je využit pro znaménko - určuje, zda je hodnota kladná () nebo záporná ()
- Ostatní bity jsou absolutní hodnota mantisy ( - data)
- Např. pro 8b byte je rozsah
- Má kladnou i zápornou nulu, tedy
- Ukázka rozsahu a algoritmu na sčítání/odečítání

Aditivní kód
- Uložené číslo je posunuto o konstantu (např. půlku modulu, )
- Nula není zobrazena jako nula, není zde záporná nula
- Např. pro 8b byte je rozsah
Doplňkový kód
-
Řeší problém dvou nul, nejvyšší bit je znaménko, ale i součást čísla
-
Kladná čísla: Zapisují se úplně stejně jako u čísel bez znaménka, nejvyšší bit je
-
Záporná čísla: Vytvoří se inverzí bitů čísla a přičtením jedničky
-
Např. pro 8b byte je rozsah
-
Detekce nesprávného součtu pomocí přeplnění (overflow) (Carry in XOR Carry Out) v nejvyšším řádu
- Sčítání: Sečtou se obrazy a ignoruje se přenos, např.
- Odečítání: Přičtení opačného čísla, např.
Aritmetické operace
Sčítání
- Sčítání a odčítání se realizuje pomocí půl sčítaček
- Odčítání se dělá pomocí negace a horké jedničky jako sčítání (pro doplňkový kód)
- lze pomocí realizovat XOR a CIN = 1 (pozor inverze overflow detekce)
- Půl sčítačka má dva vstupy a dva výstupy
- Cout = A AND B
- S(součet) = A XOR B
- Dvě půlsčítačky sečtou A, B Cin a výsledek je S, Cout
- Detekce overflow je pomocí XOR

Násobení a dělení
- realizuje se pomocí sekvenčního obvodu, který používá posuv podle čísla kterým se násobí
Floating point čísla
- Omezený rozsah přesnosti (nereprezentuje spojitou množinu)
- Zachovává relativní přesnost
- Nelze porovnávat přesně (kvůli odchylkám v reprezentaci)
IEEE 754
-
Definuje zápis FP čísla, rozděluje ho na tři části:
- Znaménko
- Exponent v aditivním kódu (přičítá se 127)
- Mantisa v přímém kódu (nejvyšší bit znaménko a poté |m|)
-
Výsledné číslo
-
Definuje kolik bitů pro jaký datový typ patří které skupině
-

-
Proces normalizace
- Pro výpočty s různými exponenty je nutné floaty normalizovat
- Posunout mantisu co nejvíc vlevo, upravit exponent
- Tedy například
- Nutné provádět po každé operaci
-
Princip skryté jedničky v mantise (je na nejvyšším bitu, ale nezapisuje se)
Sčítání a odčítání FLOAT
- Je nutný převod na stejný exponent
- Může způsobit ztrátu přesnosti
- Stačí sečíst/násobit mantisy
- Normalizovat výsledek
Násobení FLOAT
- XOR znamének
- Sečtení exponentů - Konstanta aditivního kódu
- Vynásobení mantisy i se skrytou jedničkou (případné nutné posunutí exponentu 1X,XXXX)
Dělení FLOAT
- XOR znamének
- Exponenty se odečtou + Aditivní konstant
- Mantisy vydělí
Pevná řádová čárka
- Jasně daný počet des. míst
- Dobré pro přesnost
- Problém velké rozpětí hodnot
Využívané kombinační obvody
Paralelní Sčítačka/odčítačka
-
Určena pro doplňkový kód
-
Tvořena více jednobitovými sčítačkami + hradla XOR
-
3 vstupy - (sčítané bity) a vstupní přenos například ze sčítačky nižšího řádu (nebo pro záporné číslo)
-
2 výstupy - (výsledek, součet) a výstupní přenos
-
Ovládací vstup pro odečítání - se invertuje a přičte se (např. vstupem na )
-
Sekvenční
Ukázka 4b sčítačky/odčítačky
- To zabalíme do celého bloku "4b "
- Pro odečítání je potřeba znegovat (řešeno přes multiplexer) a přičíst (vstup )
Aritmetické posuvy
- Jedná se o posuv čísel, podle konkrétního kódu se liší způsob, jakým k posuvu dochází.
- Na rozdíl od logického posuvu respektují pravidla kódu.
- Čísla bez znaménka je to stejné jako logický posuv
- Z jedné strany Carry in z druhé Carry out
- Carry Out signalizuje ztrátu přesnosti
Přímý kód
- Posouvá se pouze absolutní hodnota čísla
- nejvyšší bit reprezentující znaménko zůstává na své pozici
Doplňkový kód
- Při posuvu vpravo se nejvyšší bit kopíruje do nejvyššího a druhého nejvyššího řádu
- Zachová znaménko
- Odpovídá násobení mocninami 2
- Při posuvu vlevo je overflow xor dvou nejvyšších bitů původní hodnoty
- Odpovídá dělení mocnimami 2
Majorita
- Lichý počet vstupů
- Jeden výstup
- 1 když je nadpoloviční většina vstupů 1
XOR
- Exlusive OR
- Nejde minimalizovat
- Dvouvstupový jsou 4 NAND hradla, lze pomocí tranzistorů na 6
Dekodér
- Převádí mezi různými číselnými soustavami
Multiplexor
- Přepíná Různé signály
- Podle řídících signálů nastavuje datovou cestu
- Z n vstupů vybírá jeden na výstup
- Demultiplexor dělá opak
- jeden vstup na jeden z n výstupů
Registr
- Jedná se o sestavu paměťových buněk (D-Flip-Flop)
- Ukládají více bitové slovo
- Lze nastavit, resetovat
- Mohou obsahovat další logiku pro posuvy
Čítač
- Speciální případ registru, který inkrementuje svou hodnotu s CLK vstupem
- Může počítat v různých kódech
- Realizace pomocí stavového automatu (počet stavů do kolika počítám)
Vytvořeno: 18. 6. 2026, 19:12
Poslední aktualizace: 20. 6. 2026, 23:37