Aritmetika v dvojkovej sústave

Z SensorWiki
Prejsť na: navigácia, hľadanie

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

Khan Academy video

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:

1 Spočítajte v dvojkovej sústave čísla 2710 a 3510

2 Spočítajte v dvojkovej sústave čísla 25010 a 1010, predpokladajte 8-bitový register len pre kladné čísla:

3 Spočítajte v dvojkovej sústave čísla 8810 a -3010, predpokladajte 8-bitový register:

4 Vypočítajte v dvojkovej sústave rozdiel čísel 1510 a 2710, predpokladajte 8-bitový register:

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)


1 Vynásobte v dvojkovej sústave čísla 1710 a 510

2 Vynásobte v dvojkovej sústave čísla 25010 a 1010, predpokladajte 8-bitový register:

3 Vynásobte v dvojkovej sústave čísla 5310 a 1610, predpokladajte 16-bitový register: