Assembly/Rappresentazione dati: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ciampix (discussione | contributi)
 
Riga 44:
 
==Sistema di numerazione esadecimale==
Un gran problema con il sistema binario è la lunghezza. Per rappresentare il valore 202<sub>10</supsub> abbiamo bisogno di 8 cifre. Con il sistema decimale invece abbiamo bisogno di solo 3 cifre decimali e, quindi, con il sistema decimale, possiamo rappresentare numeri molto complessi con un minor numero di cifre, più compatti. Quando si lavora con numeri complessi, il sistema binario diventa subito poco facile da usare. Sfortunatamente, i computer pensano solo in binario, quindi, la maggior parte delle volte è utile usare il binario. Anche se possiamo convertire decimali in binari e viceversa, la conversione è un'operazione insignificante. Il sistema esadecimale (base 16) risolve questo problema. Il sistema esadecimale ci offre due funzionalità che stavamo cercando: i suoi numeri sono molto compatti, e sono semplici da convertire in binari e viceversa. Per questo motivo, molti computer utilizzano anche il sistema esadecimale. Siccome la base del sistema esadecimale è 16, ciascuna cifra esadecimale, ogni numero a sinistra della virgola rappresenta un valore moltiplicato per una potenza di 16. Per esempio, il numero 1234<sub>16</supsub> è uguale a:<br/>
 
1 * 16<sup>3</sup> + 2 * 16<sup>2</sup> + 3 * 16<sup>1</sup> + 4 * 16<sup>0</sup><br/>
Oppure:<br/>
 
4096 + 512 + 48 + 4 = 4660<sub>10</sub> rappresenta:<br/>
Oppure:<br/>
 
4096 + 512 + 48 + 4 = 4660<sub>10</sub> rappresenta:<br/>
 
Ogni cifra esadecimale può rappresentare uno dei sedici valori tra 0<sub>10</sub> e 15<sub>10</sub>. Siccome esistono solo 10 cifre decimali, abbiamo bisogno di inventare 6 cifre addizionali per rappresentare i valori da 10<sub>10</sub> a 15<sub>10</sub>. Così abbiamo creato altri simboli per queste cifre, usiamo le lettere da A a F. Questi sono esempi di numeri esadecimale validi:
 
{| style="width:100%"
|-
|1234<sub>16</supsub>
|DEAD<sub>16</supsub>
|BEEF<sub>16</supsub>
|0AFB<sub>16</supsub>
|FEED<sub>16</supsub>
|DEAF<sub>16</supsub>
|}