|
Appunti informatica |
|
Visite: 1419 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Impiego del costrutto monitorImpiego del costrutto monitor XI) Si implementi il problema Gli operatoriGli operatori Come tutti i linguaggi di programmazione, il C dispone di un insieme Lavorare con i file batchLavorare con i file batch L'interprete dei comandi (COMMAND.COM nella configurazione |
Al fine di attribuire significato ad una sequenza di bit occorre sapere quanti bit la compongono, e, come vedremo, qual è la loro organizzazione al suo interno. La più ristretta sequenza di bit significativa per le macchine è il byte, che si compone di 8 bit
In C, al byte corrisponde il tipo di dato character, cioè carattere. Esso può assumere 256 valori diversi (2 = 256). Si distinguono due tipi di character: il signed character, in cui l'ottavo bit funge da indicatore di segno (se è 1 il valore è negativo), e l'unsigned character, che utilizza invece tutti gli 8 bit per esprimere il valore, e può dunque esclusivamente assumere valori positivi. Un signed char può variare tra e , mentre un unsigned char può esprimere valori tra e
La sequenza di bit di ampiezza immediatamente superiore al byte è detta word. Qui il discorso si complica leggermente, perché mentre il byte si compone di 8 bit su quasi tutte le macchine, la dimensione della word dipende dal microprocessore che questa utilizza, e può essere, generalmente, di 16 o 32 bit (l'argomento è ripreso a pagina ). Nelle pagine che seguono faremo riferimento alla word come ad una sequenza di 16 bit, in quanto è tale la sua dimensione su tutte le macchine che utilizzano i processori Intel 8086 o 8088, o i chips 80286, 80386 e 80486 in modalità reale (cioè compatibile con l'Intel 8086).
Il tipo di dato C corrispondente alla word è l'integer, cioè intero. Anche l'integer può essere signed o unsigned. Dando per scontato, come appena detto, che un integer (cioè una word) occupi 16 bit, i valori estremi del signed integer sono e , mentre quelli dell'unsigned integer sono e
Tra il character e l'integer si colloca lo short integer, che può essere, manco a dirlo, signed o unsigned. Lo short integer occupa 16 bit, perciò stanti le assunzioni sulla dimensione della word, ai nostri fini short integer e integer sono equivalenti.
Per esprimere valori interi di notevole entità il C definisce il long integer, che occupa 32 bit. Anche il long integer può essere signed o unsigned. Nelle macchine in cui la word è di 32 bit, integer e long integer coincidono.
Tutti i tipi sin qui descritti possono rappresentare solo valori interi, e sono perciò detti integral types
In C è naturalmente possibile gestire anche numeri in virgola mobile, mediante appositi tipi di dato : il floating point, il double precision e il long double precision. Il floating point occupa 32 bit ed offre 7 cifre significative di precisione, il double precision occupa 64 bit con 15 cifre di precisione e il long double precision 80 bit con 19 cifre di precisione. Tutti i tipi in virgola mobile sono dotati di segno.
La tabella che segue riassume le caratteristiche dei tipi di dato sin qui descritti.
Tipi di dato in C
TIPO |
BIT |
VALORI AMMESSI |
Precisione |
Character |
|
da a |
|
unsigned character |
|
da a |
|
short integer |
|
da a |
|
unsigned short integer |
|
da a |
|
integer |
|
da a |
|
unsigned integer |
|
da a |
|
long integer |
|
da a |
|
unsigned long integer |
|
da a |
|
floating point |
|
da a |
7 cifre |
double precision |
|
da a |
15 cifre |
long double precision |
|
da a |
19 cifre |
Il C non contempla un tipo di dato 'stringa'. Le stringhe di caratteri (come 'Ciao Ciao!n') sono gestite come array (pag. ) di character, cioè come sequenze di caratteri che occupano posizioni contigue in memoria ed ai quali è possibile accedere mediante l'indice della loro posizione. Le stringhe possono anche essere gestite mediante i puntatori (pag. e seguenti); sulle stringhe in particolare si veda pag.
Vi è, infine, un tipo di dato particolare, utilizzabile per esprimere l'assenza di dati o per evitare di specificare a quale tipo, tra quelli appena descritti, appartenga il dato: si tratta del void type. Esso può essere utilizzato esclusivamente per dichiarare puntatori void (pag. ) e funzioni (pag.
Appunti su: |
|