Číselné kódy

BI-SPOL.21-30
  • Čí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
D
  • 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
SjDj
  • Ukázka rozsahu a algoritmu na sčítání/odečítání
    ../../Attachments/Pasted image 20260617203337.png

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
D+M=2

../../Attachments/Pasted image 20260617203500.png

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

DD+M
  • Sčítání: Sečtou se obrazy a ignoruje se přenos, např.
  • Odečítání: Přičtení opačného čísla, např.

../../Attachments/Pasted image 20260617203929.png

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
  • ../../Attachments/Pasted image 20260601185934.png

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ě

  • ../../Attachments/Pasted image 20260530175416.png

  • 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
      • posuneme o 3 bity vlevo
    • Nutné provádět po každé operaci
  • Princip skryté jedničky v mantise (je na nejvyšším bitu, ale nezapisuje se)

    • je tedy uloženo jako

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)
    • Je nutné zaokrouhlení

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

Pasted image 20260620233702.png

../../Attachments/Pasted image 20260617210925.png

  • 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 )

../../Attachments/Pasted image 20260617212107.png

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
  • ../../Attachments/Pasted image 20260601123809.png
  • 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
    • Binární
    • Grayův
    • 1 z N
  • 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