Allinterno di un calcolatore digitale ogni informazione viene
codificata in bit (acronimo per binary digit),
ovvero in sequenze di numeri binari, costituiti dalle cifre 0 e
1.
Di per sé due sole cifre possono sembrare poche per memorizzare
lenorme quantità di dati (con i loro possibili significati)
che un computer deve essere in grado di manipolare; infatti essi
possono rappresentare stati di acceso/spento, vero/falso, bianco/nero
e in genere solo coppie di valori di opposto significato.
In realtà utilizzare un insieme così ristretto di caratteri base
semplifica enormemente il lavoro di chi progetta lhardware
del calcolatore, riducendo inoltre la possibilità di errori da parte
della macchina (le cifre 0 e 1 vengono rappresentate dallhardware
per mezzo di due valori di tensione, ad es. 0V per il bit 0 e 5V
per il bit 1, ma questi valori dipendono dal tipo di microchip utilizzati
dal costruttore, nonché dallambiente di utilizzo cui il calcolatore
è destinato).
Per permetterci di lavorare con informazioni più complesse, impossibili
da rappresentare con una sola coppia di valori, i bit vengono raggruppati
in modo da formare delle codifiche cui è possibile assegnare
dei valori convenzionali.
Innanzitutto vediamo che i bit vengono raggruppati per potenze di
2 ed in genere in informatica si utilizzano le seguenti unità di
misura:
|
Unita di misura |
Numero bit |
Numero byte |
|
1 byte |
8 bit |
1 byte |
|
1 KB (Kilo-byte) |
(1024 * 8) bit |
1024 byte |
|
1 MB (Mega-Byte) |
(1.048.576 * 8) bit |
1024KB = 1.048.576 byte |
|
1 GB (Giga-Byte) |
(1.073.741.824 * 8) bit |
1024MB = 1.073.741.824 byte |
|
1 TB (Tera-Byte) |
(1.099.511.628.000 * 8) bit |
1024GB = 1.099.511.628.000 byte |
Come vedremo, nei comuni PC i caratteri vengono
rappresentati con un byte, mediante la codifica ASCII,
che associa ad ogni byte un carattere dellalfabeto o un
particolare carattere di controllo del computer.
Ad es. in ASCII la stringa binaria 01000001 corrisponde al carattere
A.
Supponiamo di voler scrivere dei caratteri su un quaderno di carta
a quadretti, dove ciascun quadretto corrisponda ad un carattere:
poiché generalmente in una pagina di quadernone vi sono 2500 quadretti
in media, quanti fogli consumeremo per riempire 1440 KB, quantità
genericamente contenuta in un floppy?
Bene, la risposta è circa 590 pagine di quadernone: questo solo
per renderci conto della quantità di informazioni che le nostre
periferiche si scambiano e memorizzano.
La rappresentazione delle informazioni è importante ai nostri
fini per capire come vengono immagazzinate le variabili in memoria,
ovvero il tipo di dato della variabile stessa.
Infatti, fin dai primi esempi tutte le volte che
abbiamo usato delle variabili si è sempre indicato, nella loro
dichiarazione, il tipo di dato.
Ogni funzione che usi al proprio interno delle variabili deve
dichiararne il tipo:
int funzione (void)
{
int ciao;
float test;
ciao = 0;
test = 0.1;
return (ciao);
}
Allinizio di questa semplice funzione troviamo indicati
i tipi di due variabili alle quali sono poi effettuati degli assegnamenti;
questa prima parte prende il nome di parte dichiarativa.
Come abbiamo già accennato nelle lezioni precedenti, la parte
dichiarativa di un programma C comunica al compilatore i nomi
di tutti gli identificatori definiti dagli utenti, nonché l'utilizzo
di ciascun identificatore.
Inoltre dice anche il tipo di informazione che deve
essere memorizzata nella locazione di memoria riservata ad ogni
variabile.
In C esistono cinque tipi di dati primari che sono riassunti nella
tabella seguente.
|
Tipo |
Parola chiave |
|
Carattere |
char |
|
Intero |
int |
|
Reale |
float |
|
Reale in doppia precisione |
double |
|
Void |
void |
I numeri interi, definiti in C dalla parola chiave int, possono
essere rappresentati internamente con 2 metodi diversi:
i) rappresentazione in modulo e segno
ii) rappresentazione in complemento a 2
che vedremo nella prossima lezione.
Torna all'indice Generale del corso di Corso di C con Linux di Software Planet