Aritmetika v dvojkovej sústave: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 49: | Riadok 49: | ||
{ 00000100|0000 0100 } | { 00000100|0000 0100 } | ||
{Spočítajte v dvojkovej sústave čísla '''88'''<sub>10</sub> a '''-30'''<sub>10</sub> | {Spočítajte v dvojkovej sústave čísla '''88'''<sub>10</sub> a '''-30'''<sub>10</sub>, predpokladajte 8-bitový register: | ||
|type="{}"} | |type="{}"} | ||
{ 111010|0011 1010|00111010 } | { 111010|0011 1010|00111010 } | ||
{Vypočítajte v dvojkovej sústave rozdiel čísel '''15'''<sub>10</sub> a '''27'''<sub>10</sub> | {Vypočítajte v dvojkovej sústave rozdiel čísel '''15'''<sub>10</sub> a '''27'''<sub>10</sub>, predpokladajte 8-bitový register: | ||
|type="{}"} | |type="{}"} | ||
{ 11110100|1111 0100 } | { 11110100|1111 0100 } |
Verzia z 13:28, 25. september 2017
Základné aritmeticko-logické operácie
Aritmeticko-logické operácie sa väčšinou vykonávajú v artitmeticko-logickej jednotke (ALJ) ( Arithmetics and Logic Unit (ALU)), ktorá je súčasťou centrálnej procesorovej jednotky (Central Processing Unit - CPU ). Pri aritmetických operáciach s obmedzenou dĺžkou slova (8-, 16-, 32-bitové slovo) je potrebné sledovať, či sa výsledok nenachádza mimo rozsah, t.j. či nedošlo ku tzv. pretečeniu (overflow).
Sčítanie
Pre sčítanie dvoch binárnych čísel platia nasledujúce pravidlá:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 0 ↓ CY: prenos do vyššsieho rádu (Carry)
Príklad 1
0 0 1 0 0 4 + 0 0 1 1 0 + 6 ______________ ____ 0 1 0 1 0 10
Prenos (carry) sa vždy jednoducho pripočíta k číslici vo vyššom ráde. Ak máme obmedzenú dĺžku slova (8-bit, 16-bit, 32-bit) tak posledný prenos už nie je kam pripočítať a dôjde k tzv. pretečeniu (overflow).
Odčítanie
Pre odčítanie dvoch binárnych čísel sa používa pripočítanie čísla s opačným znamienkom v doplnkovom kóde.
Príklady na precvičenie:
Násobenie
Príklad 2
Vypočítame súčin 3 x 6 v dvojkovej sústave:
0 1 1 (3) 1 1 0 (6) ________ 0 0 0 0 1 1 0 1 1 ___________ 1 0 0 1 0 (18)