Assembly/Rappresentazione dati/Operazioni aritmetiche
Wikibooks, manuali e libri di testo liberi.
| Assembly |
| modifica |
|
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.