Assembly/Rappresentazione dati: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix cat |
m +formattazione |
||
Riga 1:
{{Linguaggio Assembly}}
==Introduzione==
Probabilmente il più grande ostacolo che la maggior parte dei principianti incontra quando prova ad imparare
==Sistemi di Numerazione==
I moderni computer non rappresentano i valori numerici usando il sistema decimale. Generalmente, usano il [[w:Sistema numerico binario|sistema binario]]. Per capire le limitazioni
==Il sistema decimale==
Hai usato il sistema decimale (in base 10) così a lungo che probabilmente lo hai preso per definitivo. Quando vedi un numero come
'''1 * 102 + 2 * 101 + 3 * 100'''<br/>
Oppure:<br/>
Riga 19:
==Il sistema di numerazione binario==
I computer moderni (tra cui i PC IBM) operano usando la logica binaria. Il computer rappresenta i valori utilizzando due voltaggi (generalmente 0v e 5v), due voltaggi perché, ogni bit rappresenta un passaggio di corrente
==Come funziona il sistema binario==
Il sistema binario lavora esattamente come quello decimale, con due eccezioni: il binario accetta solo le cifre 0 e 1 (diversamente dal decimale le cui cifre vanno dallo 0 al 9), e il binario utilizza per rappresentare i numeri, potenze di 2 anziché di 10.
'''1 * 27 + 1 * 26 + 0 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20'''<br/>
=<br/>
Riga 29:
'''20210'''<br/>
Convertire da binario a decimale è più difficile. Si devono trovare le potenze di due, che sommate, producono il risultato decimale. Consideriamo il valore decimale 1359:<br/>
* 2<sup>10</sup> = 1024, 2<sup>11</sup> = 2048. Quindi 1024 è la potenza di due più grande minore di 1359. Sottraiamo 1024 da 1359 e scriviamo a sinistra del valore binario
* La seconda potenza di due minore di 1359 è 2<sup>9</sup>. Siccome 2<sup>9</sup> è maggiore di 355 (2<sup>9</sup> = 512) scriviamo 0 alla seconda cifra del numero binario. Risultati: binario =
* La successiva potenza è 2<sup>8</sup> (256), ed è minore di 335. Eseguiamo la sottrazione 335
* 128 (2<sup>7</sup>) è maggiore di 79, quindi aggiungiamo 0 al binario e il decimale resta uguale. Risultati: binario =
* 64 (2<sup>6</sup>) è minore di 79, quindi aggiungiamo 1 al binario e il decimale diventa 79
* 32 (2<sup>5</sup>) è maggiore di 15, quindi aggiungiamo 0 al binario e il decimale resta uguale. Risultati: binario =
* 16 (2<sup>4</sup>) è maggiore di 15, quindi aggiungiamo 0 al binario e il decimale resta uguale. Risultati: binario =
* 8 (2<sup>3</sup>) è minore di 15, quindi aggiungiamo 1 al binario e il decimale diventa 15
* 4 (2<sup>2</sup>) è minore di 7, quindi aggiungiamo 1 al binario e il decimale diventa 7
* 2 (2<sup>1</sup>) è minore di 4, quindi aggiungiamo 1 al binario e il decimale diventa 4
* 1 (2<sup>0</sup>) è minore di 2, quindi aggiungiamo 1 al binario e il decimale diventa 2
* Se il numero decimale di partenza è pari aggiungere 0 al binario
Il sistema binario ha poca importanza negli HLLs, ma
==Sistema di numerazione esadecimale==
Riga 62:
Siccome abbiamo spesso bisogno di inserire numeri esadecimale nei computer, abbiamo bisogno di meccanismi diversi per rappresentare i numeri esadecimale. Dopotutto, i computer non possono capire che base stiamo usando dal valore. Si usa questa convenzione:
* Tutti i numeri (qualunque sia la base), cominciano con una cifra decimale. (nel caso il numero dovesse cominciare con una lettera, si antepone "0" per non alterare il valore del numero)
* Tutti i numeri esadecimali finiscono con la lettera
* Tutti i numeri binari finiscono con la lettera
* Tutti i numeri decimali '''dovrebbero''' terminare con
Esempi di numeri esadecimali validi:
Riga 103:
<br/>
Il risultato della conversione è: 0ABCDh = 1010101111001101b. Da qui possiamo trasformarlo semplicemente in decimale.<br/>
Per convertire un numero binario in esadecimale è altrettanto facile. Il primo passo è riempire
Siccome la conversione tra binario e esadecimale è un operazione che dovremo svolgere molte volte, è bene memorizzare la tabella sopra. Se hai una calcolatrice che effettua la conversione (come quella di [[w:Windows|Windows]]), troverai che la conversione manuale è molto conveniente e più veloce quando si trasformano binari e esadecimali
Riga 109:
|NomeLibro=Assembly
|Libro=Assembly
|CapitoloPrecedente=
|NomePaginaCapitoloPrecedente=Assembly/Introduzione/
|CapitoloSuccessivo=Formati binari e organizzazione dei dati
|NomePaginaCapitoloSuccessivo=Assembly/Rappresentazione dati/Struttura binaria e organizzazione dei dati
|