Assembly/Rappresentazione dati/Operazioni aritmetiche

Wikibooks, manuali e libri di testo liberi.

Assembly
modifica
Indice

Come nel sistema decimale, anche nei sistemi binario ed esadecimale, possiamo svolgere le 4 operazioni aritmetiche di base. Non occorre essere esperti in queste operazioni, basta saperle usare in caso di necessità. Ad ogni modo esiste la calcolatrice di Windows, che impostata in modalità scientifica, ci permetterà di scegliere la base del sistema scelto ed effettuare le operazioni semplicemente.

Indice

[modifica] Addizione binaria

Quanto fa 11001010b + 01011000b?
Come nel sistema decimale, l'operazione si svolge così:

  1 1 0 0 1 0 1 0 +
  0 1 0 1 1 0 0 0 =
  ---------------
1 0 0 1 0 0 0 1 0

Partendo da destra si sommano i primi due numeri. Se come risultato danno 0, si lascia uno 0. Se come risultato danno 1, resta ancora 1, ma se invece danno come risultato 2, che nel sistema binario non esiste (al limite esiste 10b), il risultato sarà 0, con riporto 1. Semplice no?

[modifica] Sottrazione binaria

Come per l'addizione, anche la sottrazione si svolge allo stesso modo.

1 1 0 0 1 0 1 0 -
0 1 0 1 1 0 0 0 =
---------------
0 1 1 1 0 0 1 0

Partendo da destra si esegue la differenza dei primi due numeri. Se la sottrazione è 0 - 0, si scrive 0, se invece è 1 - 0, si lascia ancora 1, se ancora, 1 - 1, si scrive 0. Altrimenti nel caso di 0 - 1, si chiede prestito alla cifra a sinistra. Proprio come nella sottrazione decimale.

ATTENZIONE: prima di eseguire una sottrazione controllare che il primo membro della sottrazione sia maggiore del secondo.

[modifica] Moltiplicazione binaria

Anche la moltiplicazione non presenta grandi difficoltà:

              1 1 0 0 1 0 1 0 *
              0 1 0 1 1 0 0 0 =
              ---------------
              0 0 0 0 0 0 0 0
            0 0 0 0 0 0 0 0 /
          0 0 0 0 0 0 0 0 /
        1 1 0 0 1 0 1 0 /
      1 1 0 0 1 0 1 0 /
    0 0 0 0 0 0 0 0 /
  1 1 0 0 1 0 1 0 /
0 0 0 0 0 0 0 0 /
-----------------------------
1 0 0 0 1 0 1 0 1 1 1 0 0 0 0

Si moltiplica per ogni termine del moltiplicatore, a partire da destra, tutti i termini del moltiplicando, spostando per ciascun termine del primo di una cifra a sinistra. Alla fine si sommano i risultati.

[modifica] Divisione binaria

Questa è la più difficile delle operazioni binarie. Per prima cosa, bisogna capire, che in binario, non esistono cifre dopo la virgola. Quindi deve essere sempre una divisione esatta.

Si procede in questo modo:

  • Si convertono i valori in decimale.
  • Si esegue la divisione decimale.
  • Si trasforma il risultato in binario.

Questo è l'unico metodo che io conosca per effettuare questo tipo di divisione. Ovviamente è possibile anche sottrarre ripetutamente al dividendo il divisore finché non diventa inferiore ad esso, e contare il numero di sottrazioni eseguite.

[modifica] Addizione esadecimale

Su questo tipo di addizione, dovremo farci un po' l'abitudine. Quanto fa:

9h +
1h =

La vostra risposta sarà immediatamente 10h. Sbagliato!!! Ricordate che in esadecimale, si contà in questo modo:
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 ecc...
Quindi quando si addizionano 9h e 1h il risultato sarà 0Ah.

[modifica] Sottrazione esadecimale

Lo stesso problema lo abbiamo qui:

10h -
 1h =

9h? Sbagliato. 10h - 1h da come risultato 0Fh. Questi sono gli errori più facili da commettere quando si eseguono addizioni e moltiplicazioni esadecimali.

[modifica] Moltiplicazione esadecimale

Ovviamente il metodo sarebbe quello delle operazioni in binario e decimale, ma in questo caso, dovrete imparare le tabelline della A, della B della C ecc...
Alquanto sconveniente.... La cosa migliore in questo caso è avere una calcolatrice a portata di mano. Così come per la divisione.

1leftarrow.png Modulo precedente

Struttura Binaria e organizzazione dati

1uparrow.png Torna a

Assembly

1rightarrow.png Modulo successivo

Operazioni logiche con bit e bytes

Strumenti personali