Representação dos números inteiros e reais Darstellung von ganzen und reellen Zahlen Représentation des nombres entiers et réels Representación de números reales y números enteros Representation of real numbers and integers

Rappresentazione di un numero in un computer

Si chiama rappresentazione (o codificazione) di un numero il modo in cui è descritto sotto forma binaria. La rappresentazione dei numeri in un computer è indispensabile affinché quest'ultimo li possa immagazzinare e manipolarli. Tuttavia il problema è che un numero matematico può essere infinito (indipendentemente dalla grandezza), ma la rappresentazione di un numero in un computer deve essere fatta su un numero di bits predefiniti. Si tratta quindi di predefinire un numero di bits e il modo di usarli affinché questi possano rappresentare il più efficacemente possibile l'entità. Così sarà stupido codificare un carattere in 16 bits (65536 possibilità) quando se ne utilizzano generalmente meno di 256...

Rappresentazione di un intero naturale

Un intero naturale è un intero positivo o nullo. La scelta (cioè il numero di bits da usare) dipende dalla tranche di numeri che si desidera utilizzare. Per codificare i numeri interi naturali compresi tra 0 e 255, basterà un 8 bits (un byte) dato che 28=256. In maniera più generale una codifica su n bits permetterà di rappresentare dei numeri interi naturali compresi tra 0 e 2n-1.

Per presentare un numero intero naturale dopo aver definito il numero di bits sul quale lo si codifica, basta sistemare ogni bit nella cellula binaria corrispondente a suo peso binario da destra verso sinistra, poi si « riempiono » i bits non utilizzati con degli zero.

Rappresentazione di un intero relativo

Un intero relativo è un intero che può essere negativo. Si deve quindi codificare il numero in modo che si possa sapere se si tratta di un numero positivo o negativo, e bisogna che le regole di addizione siano conservate. L'astuzia sta nell'utilizzare una codifica chiamata complemento a due.

  • un intero relativo positivo o nullo sarà rappresentato in binario (base 2) come un intero naturale, con la sola differenza che il bit di peso maggiore (il bit posto all'estrema sinistra) rappresenta il segno. Per un intero positivo bisogna quindi assicurarsi che sia a zero (0 corrisponde ad un segno positivo, 1 ad un negativo). Così se si codifica un intero naturale su 4 bits, il numero più grande sarà 0111 (cioè 7 in base decimale).
    In modo generale il più grande intero relativo positivo codificato su n bits sarà '2n-1-1.
  • un intero relativo negativo grazie alla codifica in complemento a due.
    Principio di complemento a due :
    Sia un numero negativo da rappresentare.
    • Prendiamo il suo opposto (il suo equivalente in positivo)
    • Lo si rappresenta in base 2 su n-1 bits
    • Si complementa ogni bit (si inverte, cioè si sostituiscono gli zero con gli 1 e viceversa)
    • Si aggiunge 1
    Si noterà che sommando il numero e il suo complemento a due si ottiene 0…
Vediamo ora un esempio pratico :
Si vuole codificare il valore -5 su 8 bits. Basterà :
  • scrivere 5 in binario: 00000101
  • complementare con 1: 11111010
  • aggiungere 1: 11111011
  • la rappresentazione binaria di -5 su 8 bits è 11111011
Commenti:
il bit di peso maggiore è 1, si ha dunque un numero negativo.
Si si sommano 5 e -5 ((00000101 et 11111011) si ha 0 (con un resto di 1…).

Rappresentazione di un numero reale

Si tratta di rappresentare un numero binario con virgole (ad esempio 101,01 che non si legge centouno virgola zero uno dato che è un numero binario ma 5,25 in decimale) sotto forma 1,XXXXX… * 2n (cioè nel nostro esempio 1,0101*22). La norma IEEE definisce il modo di codificare un numero reale.
Questa norma si propone di codificare il numero in 32 bits e definisce tre componenti :

  • il segno è rappresentato da un solo bit, il bit di peso maggiore (quello più a sinistra)
  • l'esponente è codificato sugli 8 bits consecutivi al segno
  • la mantissa (i bits posti dopo la virgola) sui 23 bits rimanenti
Così la codifica si fa nella forma seguente :
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
  • la s rappresenta il bit relativo al segno
  • le e rappresentano i bits relativi all'esponente
  • le m rappresentano i bits relativi alla mantissa

Tuttavia vi sono alcune condizioni che devono essere rispettate dall'esponente :

  • l'esponente 00000000 è vietato
  • l'esponente 11111111 è vietato. Lo si utilizza talvolta per segnalare degli errori, chiamando questa configurazione di numero NaN, che significa Not a number
  • Bisogna aggiungere 127 (01111111) all'esponente per una conversione decimale in un numero reale binario. Gli esponenti possono quindi andare da -254 a 255

La formula d'espressione dei numeri reali è quindi la seguente:

(-1)^S * 2^( E - 127 ) * ( 1 + F )

dove:

  • S è il bit di segno e si capisce quindi perché 0 è positivo ( -1^0=1 ).
  • E è l'esponente ai quali si deve aggiungere 127 per ottenere il suo equivalente codificato.
  • F è la parte frazionata, la sola che si esprime e che è sommata a 1 per effettuare il calcolo.

Vediamo questa codifica in un esempio :
Sia da codificare il valore 525,5.

  • 525,5 è positivo quindi il primo bit sarà 0.
  • La sua rappresentazione in base 2 è la seguente: 1000001101,1
  • Normalizzando, si trova: 1,0000011011*2^9
  • Si aggiunge 127 all'esponente che vale 9 il che da 136, ossia in base 2: 10001000
  • La mantissa è composta dalla parte decimale di 525,5 in base normalizzata, cioè 0000011011.
  • Dato che la mantissa deve occupare 23 bits, è necessario aggiungere degli zero per completarla:
    00000110110000000000000
  • La rappresentazione del numero 525,5 in binario con la norma IEEE è quindi :
    0 1000 1000 00000110110000000000000
    0100 0100 0000 0011 0110 0000 0000 0000 (4403600 in esadecimale)

Ecco un altro esempio con un reale negativo :
Sia da codificare il valore -0,625.

  • Il bit vale 1 dato che 0,625 è negativo
  • 0,625 si scrive in base 2 nel modo seguente: 0,101
  • Si vuole scriverlo sotto la forma 1.01 x 2-1
  • Di conseguenza l'esponente vale 1111110 visto che 127 - 1 = 126 (cioè 1111110 in binario)
  • La mantissa è 01000000000000000000000 (solo le cifre dopo la virgola sono rappresentate, visto che il numero intero è sempre uguale a 1)
  • La rappresentazione del numero 0,625 in binario con la norma IEEE è:
    1 1111 1110 01000000000000000000000
    1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 in esadecimale)


Ultime modificazione ilvenerdì 6 febbraio 2009 alle 16:52:01.Questo documento intitolato «  » da Kioskea (it.kioskea.net) è reso disponibile sotto la licenza Creative Commons. È possibile copiare, modificare le copie di questa pagina, alle condizioni previste dalla licenza, come questa nota appare chiaramente.
Migliori risposte per « Rappresentazione dei numeri interi e reali » in :
Indirizzo IP Vedi Che cos'è un indirizzo IP Su internet, i computer comunicano fra loro grazie al protocollo IP (Internet Protocol), che usa degli indirizzi numerici, detti Indirizzi IP, composti da 4 numeri interi (4 byte) compresi tra 0 e 255 e siglati sotto la...
La codifica binaria Vedi Presentazione del binario Verso la fine degli anni 30, Claude Shannon dimostrerà che con l'aiuto dei « contrattori » (interruttori) chiusi per « vero » e aperti per « falso » era possibile effettuare delle operazioni logiche associando il numero 1...
Masterizzare o leggere un file .NRG VediUn file .NRG è un' immagine del CD, ovvero una copia binaria di un CD o DVD sotto forma di un file. File. NRG può essere usato da programmi di masterizzazione o dei lettori di dischi virtuali (come Daemon tools). In assenza di un masterizzatore,...
Creare un sito bello, dinamico e che rispetti gli standard VediEcco una lista di link che vi aiuteranno ad utilizzare al meglio i software standard (HTML, CSS, DOM...) per creare dei siti più belli, più dinamici, e più in linea con gli standard. Alla fine di questa pagina troverete anche una lista di...
Download K-Lite Codec Pack Full VediK-Lite Codec Pack è una raccolta di codecs e di filtri necessari per codificare e decodificare dei formati audio e video. K-Lite Codec Pack Full comprende l'insieme dei codec e dei filtri necessari per la maggiorparte dei formati audio e video...
Download Pixia VediPIXI è un software di grafica con incredibile possibilità. Facilità nella modifica di immagini e trasformazione delle foto, è molto potente per la creazione di grafica: Gestione dei livelli, maschere e trasparenze Modalità di selezione originale...
Trasmissione di dati – Introduzione VediRappresentazione dei dati Lo scopo di una rete e' di trasmettere delle informazioni da un computer ad un altro. Per questo bisogna in un primo tempo decidere il tipo di codifica del dato da inviare, cioe' la sua rappresentazione informatica. Questa...
Test e diagnostica di rete VediTestare la configurazione IP Prima di tutto, si raccomanda di verificare la configurazione IP del computer. I sistemi Windows propongono uno strumento di comando in linea, detto ipconfig che permette di conoscere la configurazione IP del computer....
Presa RCA (CINCH) VediConnettore RCA Il Connettore RCA (Radio Corporation of Amercia, detto talvolta CINCH) è un connettore che serve per il trasporto dei segnali audio e video.La presa RCA permette di far transitare in un cavo composto da due fili dei segnali video e...