31.05.2013 Views

Tricky C - Si® @lbert Site

Tricky C - Si® @lbert Site

Tricky C - Si® @lbert Site

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12 - <strong>Tricky</strong> C<br />

Tra il character e l'integer si colloca lo short integer, che può essere, manco a dirlo, signed o<br />

unsigned. Lo short integer occupa 16 bit, perciò stanti le assunzioni sulla dimensione della word, ai<br />

nostri fini short integer e integer sono equivalenti.<br />

Per esprimere valori interi di notevole entità il C definisce il long integer, che occupa 32 bit.<br />

Anche il long integer può essere signed o unsigned. Nelle macchine in cui la word è di 32 bit,<br />

integer e long integer coincidono.<br />

Tutti i tipi sin qui descritti possono rappresentare solo valori interi, e sono perciò detti integral<br />

types.<br />

In C è naturalmente possibile gestire anche numeri in virgola mobile, mediante appositi tipi di<br />

dato 16 : il floating point , il double precision e il long double precision. Il floating point occupa 32 bit ed<br />

offre 7 cifre significative di precisione, il double precision occupa 64 bit con 15 cifre di precisione e il<br />

long double precision 80 bit 17 con 19 cifre di precisione. Tutti i tipi in virgola mobile sono dotati di<br />

segno.<br />

La tabella che segue riassume le caratteristiche dei tipi di dato sin qui descritti.<br />

TIPI DI DATO IN C<br />

TIPO BIT VALORI AMMESSI PRECISIONE<br />

character 8 da -128 a 127 -<br />

unsigned character 8 da 0 a 255 -<br />

short integer 16 da -32768 a 32767 -<br />

unsigned short integer 16 da 0 a 65535 -<br />

integer 16 da -32768 a 32767 -<br />

unsigned integer 16 da 0 a 65535 -<br />

long integer 32 da -2147483648 a 2147483647 -<br />

unsigned long integer 32 da 0 a 4294967295 -<br />

floating point 32 da 3.4*10 -38 a 3.4*10 38 7 cifre<br />

double precision 64 da 1.7*10 -308 a 1.7*10 308 15 cifre<br />

long double precision 80 da 3.4*10 -4932 a 1.1*10 4932 19 cifre<br />

Il C non contempla un tipo di dato "stringa". Le stringhe di caratteri (come "Ciao<br />

Ciao!\n") sono gestite come array (pag. 29) di character, cioè come sequenze di caratteri che<br />

occupano posizioni contigue in memoria ed ai quali è possibile accedere mediante l'indice della loro<br />

16 I numeri in virgola mobile sono gestiti in formato esponenziale: una parte dei bit sono dedicati alla mantissa,<br />

una parte all'esponente ed uno al segno.<br />

17 Corrisponde alla dimensione dei registri del coprocessore matematico.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!