Sei sulla pagina 1di 5

16/11/2020 04 - Rappresentazione dei dati - Informatica - Corso di Laurea in Matematica - UniBa

04 - Rappresentazione dei dati

Rappresentare il mondo in forma binaria


Le informazioni contenute all'interno di un calcolatore, siano esse dati o istruzioni, sono
rappresentate in forma binaria come sequenze nite di simboli 0 ed 1 . Questa notazione
permette di de nire una delle nozioni fondamentali su cui è basata l'informatica, ovvero quella
di bit, contrazione di binary digit (cifra binaria):

Bit

Il bit è l'unità di informazione fondamentale interpretabile da un calcolatore, e può assumere valori


0 (falso) o 1 (vero).

Conseguentemente, è possibile de nire un'altra nozione fondamentale, ovvero quella di byte,


associata ad una sequenza (arbitraria) di otto bit. E' facile veri care che un byte può assumere
uno tra 28 possibili valori.

De niamo in ne una parola, o word, una sequenza di N byte, con N dipendente dal contesto
speci co (ad esempio, il tipo di processore in uso).

I dati numerici
Rappresentazione di numeri interi

Finitezza

I calcolatori sono dispositivi reali, ed in grado quindi di elaborare esclusivamente informazioni


nite; più nello speci co, laddove il mondo reale è analogico, e quindi continuo, il mondo
"comprensibile" dai calcolatori è digitale, e quindi è una versione discretizzata del mondo reale.

Ciò comporta che, parlando di numeri interi rappresentabili in un calcolatore, si sta in realtà
parlando di un'approssimazione nita dell'insieme dei numeri naturali N: l'estensione di questa
rappresentazione dipende dall'architettura del calcolatore. Ad esempio, la maggior parte dei
calcolatori odierni accetta come limite massimo il valore di 264, pari
18.446.744.073.709.551.616 (abbastanza per rappresentare il numero massimo di amici
che potete avere su Facebook, plausibilmente).

https://anhelus.github.io/informatica-dm-uniba/01_introduttivi/04_rappresentazione/ 1/5
16/11/2020 04 - Rappresentazione dei dati - Informatica - Corso di Laurea in Matematica - UniBa

Da decimale a binario

Siamo abituati a pensare (ed usare) i numeri interi usando una notazione di tipo decimale e
posizionale. Ciò signi ca che:

utilizziamo i simboli compresi tra 0 e 9 per rappresentare ogni numero intero;

sfruttiamo la posizione in cui compare ciascun simbolo per interpretare il valore nale del
numero.

Per fare un esempio, i numeri 12 e 21 sono rappresentati usando gli stessi simboli decimali,
ovvero 1 e 2; tuttavia, la loro disposizione è differente, per cui non hanno lo stesso signi cato.

UN ESEMPIO

In generale, sia N un generico numero intero composto da n simboli. Usando la notazione


decimale e posizionale è possibile esprimerlo come segue:

N = anan−1an−2. . . a2a1a0

Esprimendo N in base b:

n n−1
Nb = an ∗ b + an−1 ∗ b +. . . +a1 ∗ b + a0

Per fare un semplice esempio:

2
N = 48510 = (4 ∗ 10 + 8 ∗ 10 + 5)10

Conversione

Supponiamo di voler rappresentare N = 485 in forma binaria (ovvero in base 2). Dovremo
procedere dividendo N per la nostra base b = 2 , valutare il resto r, che sarà di volta in volta il
valore meno signi cativo del nostro numero in forma binaria, e reiterare l'operazione usando il
quoziente q.

Otteniamo quindi:

https://anhelus.github.io/informatica-dm-uniba/01_introduttivi/04_rappresentazione/ 2/5
16/11/2020 04 - Rappresentazione dei dati - Informatica - Corso di Laurea in Matematica - UniBa

485/2 ⇒ q = 242 r = 1 ⇒ LSB

242/2 ⇒ q = 121 r = 0

121/2 ⇒ q = 60 r = 1

60/2 ⇒ q = 30 r = 0

30/2 ⇒ q = 15 r = 0

15/2 ⇒ q = 7 r = 1

7/2 ⇒ q = 3 r = 1

3/2 ⇒ q = 1 r = 1

1/2 ⇒ q = 0 r = 1 ⇒ M SB

Il valore di N in forma binaria è quindi dato da:

N2 = (111100101)2

Notiamo che la prima cifra che otteniamo è indicata con il termine LSB, acronimo che sta per
Least Signi cant Bit; questo è il bit meno signi cativo, ovvero quello "meno rilevante" rispetto al
valore nale, ed è posizionato più a destra nella rappresentazione. Di converso, il primo valore è
chiamato MSB, acronimo che sta per Most Signi cant Bit (e che è ovviamente il bit più
signi cativo).

Segno

E' importante ricordare che i numeri interi possono essere dotati di segno; questo è,
ovviamente, un fattore di cui va tenuto conto nella rappresentazione del numero stesso, ed è
legato al fatto che il calcolatore può contenere solo un quantitativo nito di infomrazione.

Immaginiamo infatti che il computer utilizzi una word di W bit per memorizzare gli interi; ciò
signi ca che sarà possibile memorizzare al più 2W valori. Nel caso si considerino tutti i valori
positivi (includendo nel conteggio "per convenzione" anche lo 0), il calcolatore potrà
rappresentare tutti i numeri che vanno da 0 a 2W − 1 .

Questa situazione, però, cambia nel caso si voglia considerare il segno del numero. Infatti,
supponendo di suddividere l'intervallo considerato in valori negativi e valori positivi, il
calcolatore sarà in grado di rappresentare sempre 2W valori, ma metà di questi saranno
negativi, mentre l'altra metà sarà composta da valori positivi. Ciò ha come diretta conseguenza
il fatto che il range dei numeri rappresentati varia da −2W −1 a 2W −1 − 1.

Per fare un esempio pratico, supponendo un valore di W = 8 , avremo che:

se consideriamo solo gli interi positivi, potremo rappresentare tutti i numeri interi compresi
tra 0 e 255 = 2
8
− 1 ;

se consideriamo anche i valori negativi, potremo rappresentare tutti i numeri interi


compresi tra −128 = −2
W −1
e 127 = −2
W −1
− 1 .

https://anhelus.github.io/informatica-dm-uniba/01_introduttivi/04_rappresentazione/ 3/5
16/11/2020 04 - Rappresentazione dei dati - Informatica - Corso di Laurea in Matematica - UniBa

Rappresentazione di numeri reali

Così come per l'insieme dei numeri naturali, anche quello dei numeri reali R può essere
rappresentato all'interno di un calcolatore esclusivamente mediante un'approssimazione nita.
Per trovare quest'approssimazione, occorre considerare che ogni numero reale è composto da
una parte intera r ed una parte frazionaria f .

Rappresentazione a virgola ssa

Supponiamo di avere a disposizione parole composte da W bit. Nella rappresentazione a


virgola ssa (o xed point) di un numero N , usiamo un numero sso di bit (ovvero Wr) per la
parte intera di N , ed i rimanenti bit (Wf ) per la rappresentazione della parte frazionaria.
Ovviamente, questa rappresentazione ha lo svantaggio di essere poco essibile, e le viene
spesso preferita quella a virgola mobile.

Rappresentazione a virgola mobile

La modalità di rappresentazione di un numero reale maggiormente diffusa è quella a virgola


mobile ( oating point), che si basa sui concetti di mantissa, ovvero la parte frazionaria di un
numero, e caratteristica, o esponente.

In particolare, la mantissa di un numero reale n è pari al valore del numero diminuito della sua
parte intera ni:

M = n − ni

Ad esempio, la mantissa di 5.2 è pari a 0.2. E' facile veri care che la mantissa M è sempre
compresa tra −1 ed 1.

Ne consegue che un numero a è rappresentabile in una data base b mediante la seguente


relazione:

e
a = M ∗ b

Rappresentazione di caratteri

Anche i caratteri (ovvero quelli che troviamo normalmente sulle nostre tastiere) possono
essere rappresentati in binario. Più in generale, il concetto di "carattere" è assimilabile a quello
di simbolo, in quanto i calcolatori sono in grado di comprendere simboli che indicano, tra le
altre cose, le cifre decimali, la punteggiatura, ed una vasta serie di caratteri speciali (ad
esempio, l'underscore, la "chiocciola", e via dicendo).

https://anhelus.github.io/informatica-dm-uniba/01_introduttivi/04_rappresentazione/ 4/5
16/11/2020 04 - Rappresentazione dei dati - Informatica - Corso di Laurea in Matematica - UniBa

L'enorme varietà di caratteri ha portato alla necessità di uniformarne la rappresentazione,


creando una corrispondenza biunivoca tra ogni carattere ed un numero intero. Tale
corrispondenza è stabilita da standard ben precisi, tra i quali vale la pena di ricordare lo
standard ASCII e quello UNICODE. Quest'ultimo è particolarmente potente (ed esteso), in
quanto permette di codi care la maggior parte dei caratteri conosciuti, compresi quelli di
alcune lingue ormai considerate morte (come ad esempio il greco antico).

Curiosità

Complessivamente, lo standard UNICODE è in grado di rappresentare più di diecimila caratteri.


Essendo però codi cato a sedici bit, vi è spazio ancora per un bel po' di lingue morte.

https://anhelus.github.io/informatica-dm-uniba/01_introduttivi/04_rappresentazione/ 5/5

Potrebbero piacerti anche