| Pagina vista |
3139  |
|
|
|
 | Il Binario è la base dell'informatica, è come prima lezione il nostro Ingegnere Informatico Gianfranco Vecchio ci spiega i suoi segreti, in una sapiente lezione sviluppanta in punti completi e concisi. La comunità ringranzia ancora il nostro Ingengnere Gianfranco Vecchio che potete trovare sul forum con il nome di Montalbano. |
Il sistema di numerazione binarioIn questa prima lezione tratteremo il sistema di numerazione binario, che sta alla base di tutte quelle operazioni che noi possiamo compiere con il nostro calcolatore. Questi è costituito da un’insieme di componenti elementari che si possono presentare solamente in 2 condizioni diverse: in un circuito passa o non passa corrente, un tubo elettronico è acceso o spento. In questo modo l’eleboratore registra le informazioni, rappresentando numeri, lettere e caratteri particolari mediante una serie di 1 e di 0. Il sistema di numerazione che noi adoperiamo è a base 10 in quanto contiamo gli oggetti raggruppandoli di dieci in dieci e utilizziamo 10 cifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) per scrivere i numeri. È possibile adoperare altri sistemi di numerazione che partono da basi diverse come il sessagesimale (a base 60, utilizzato dagli antichi Sumeri e attualmente adoperato per esprimere la misura dell'ampiezza di un angolo). Il sistema di numerazione binario, come già detto, conta gli oggetti raggruppandoli a due a due per cui utilizza 2 cifre, lo 0 e l'1, per rappresentare qualsiasi numero. I cambiamenti di base (da base 10 a base 2 e viceversa) La trasformazione di un numero da base 10 a base 2 si ottiene dividendo il numero per due fino ad ottenere un quoziente inferiore a 2; si registrano i resti delle divisioni e l'ultimo quoziente; il numero viene rappresentato scrivendo l'ultimo quoziente e riportando, a ritroso, i resti delle divisioni. Questa procedura può essere utilizzata per trasformare qualsiasi numero dato in base 10, in altra base: il divisore sarà il numero utilizzato per quella determinata base. Facciamo un esempio tanto per chiarire le idee; vogliamo convertire 37 da base 10 a base 2: 37 : 2 = 18 resto = 1 18 : 2 = 9 resto = 0 9 : 2 = 4 resto = 1 4 : 2 = 2 resto = 0 2 : 2 = 1 resto = 0 Allora avremo 3710 = 1001012 La trasformazione di un numero da base 2 a base 10 si ottiene moltiplicando ogni cifra, partendo dall'ultima, per la potenza di 2 che gli corrisponde (all'ultima cifra corrisponde 20 cioè 1, alla penultima 21, alla terzultima 22 e così via) e sommando i risultati. Esempio 1011012 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 45 L'addizione Per eseguire un'addizione in sistema binario si utilizza la seguente tabella: + 1 0 1 10 1 0 1 0 Esempio 1 1 0 1 1 + 1 0 1 1 = -------------- 10 0 1 1 0 La moltiplicazione Per eseguire una moltiplicazione in sistema binario si utilizza la seguente tabella: X 1 0 1 1 0 0 0 0 Esempio 1 0 0 1 1 x 1 1 = 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 Ecco una tabellina che riassume la conversione fra i più comuni sistemi numerici utilizzati in informatica (il sistema esadecimale utilizza sedici simboli invece che 10 rispetto al sistema decimale): I numeri binari non sono utilizzati esclusivamente per memorizzare numeri interi positivi ma è possibile scrivere numeri binari con segno e parte decimale senza introdurre nuovi caratteri (come la virgola e il segno meno).
Rappresentazione in modulo e segno Questo è il modo più semplice per rappresentare e distinguere numeri positivi e negativi: al numero binario vero e proprio viene anteposto un bit che, per convenzione, assume il valore 0 se il numero è positivo ed assume il valore 1 se il numero è negativo. Il grande difetto di questa rappresentazione è quello di avere due modi per scrivere il numero 0: 00000000 e 10000000 significano infatti +0 e -0.
Rappresentazione in complemento a 2 Questo metodo di rappresentazione ha notevoli vantaggi, soprattutto per effettuare somme e differenze: in pratica ai numeri viene anteposto un bit di valore zero; se poi il numero è negativo è necessario convertirlo in complemento a 2: per farlo è sufficiente leggere il numero da destra verso sinistra e invertire tutte le cifre a partire dal primo bit pari a 1 (escluso). Per fare un esempio: − 1210 = − 011002 = 10100CA2 Come è possibile notare seguendo questo metodo il primo bit diventa automaticamente il bit del segno (come per il metodo precedente). Viene però risolto il problema dell'ambiguità dello 0 (in complemento a 2 00000 e 10000 hanno significati diversi) e vengono enormemente facilitate le operazioni di somma e differenza, che si riducono alla sola operazione di somma: per spiegarmi meglio basta fare un esempio: 510 − 1010 = 510 + ( − 10)10 = 1012 − 11002 = 00101CA2 + 10100CA2 = 11001CA2 = − 001102 = − 510
Rappresentazione a virgola fissa Dato che in un bit non è rappresentabile la virgola il metodo più semplice per rappresentare numeri frazionari è quello di scegliere arbitrariamente la posizione della virgola (ad es. se si sceglie di usare 4 bit per la parte intera e 4 per la parte frazionaria: 101001012 significa 1010,01012).
Rappresentazione in virgola mobile Esistono innumerevoli modi per rappresentare numeri in virgola mobile ma il sistema più utlizzato è lo standard IEEE P754; questo metodo comporta l'utilizzo della notazione scientifica, in cui ogni numero è identificato dal segno, da una mantissa (1,xxxxx) e dall'esponente (nyyyyy). La procedura standard per la conversione da numero decimale a numero binario P754 è la seguente: 1. Prima di tutto il numero, in valore assoluto, va convertito in binario. 2. Il numero va poi diviso (o moltiplicato) per 2 fino a ottenere una forma del tipo 1,xxxxxx. 3. Di questo numero viene eliminato l'1 iniziale (per risparmiare memoria) 4. Il numero di volte per cui il numero è stato diviso (o moltiplicato) per 2 rappresenta l'esponente: questo valore (decimale) va espresso in eccesso 127, ovvero è necessario sommare 127 e convertire il numero risultante in binario. A questo punto abbiamo raccolto tutti i dati necessari per memorizzare il numero: in base al numero di bit che abbiamo a disposizione possiamo utilizzare tre formati: il formato a precisione singola (32 bit), il formato a precisione doppia (64 bit) e il formato a precisione quadrupla (128 bit). 1. Nel primo caso possiamo scrivere il valore utilizzando 1 bit per il segno, 8 bit per l'esponente e 23 bit per la mantissa 2. Nel secondo caso servirà 1 bit per il segno, 11 bit per l'esponente e 52 per la mantissa. 3. Nel terzo caso servirà 1 bit per il segno, 15 bit per l'esponente e 112 per la mantissa. Per esempio, convertiamo il valore − 14,312510 in binario P754 single: 1. Convertiamo prima di tutto il numero: 1410 = 11102 per la parte intera e 0,312510 = 0,01012. Quindi il numero definitivo è 1110,01012 (segno escluso). 2. Dividiamo poi il numero per 2 per ottenere la seguente notazione: 1110,01012 = 1,10001012 * 23 3. La mantissa diventa, quindi: 1000101. 4. Per esprimere l'esponente in eccesso 127, infine: 127 + 3 = 13010 = 100000102 Il numero, alla fine, sarà espresso nel formato: 1 10000010 10001010000000000000000
Realizzato Da Gianfranco Vecchio In Esclusiva Per Le Lezioni Di Ingegneria Informatica Di TiempoLibreSite.com
Commenti utenti (0)
|
|
|