Codifica dei Tipi di Dati in Linguaggio C

Documenti analoghi
Variabili. Tipi di dati di base. Variabili. Variabili

Primi passi col linguaggio C

Il linguaggio C. Notate che...

Linguaggio C - sezione dichiarativa: costanti e variabili

Struttura dei programmi C

Fondamenti di Linguaggio C

Introduzione al Linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Lezione 6 Introduzione al C++ Mauro Piccolo

Linguaggio C. Fondamenti. Struttura di un programma.

Rappresentazione numeri reali

Programmare. La programmazione. Linguaggi. Algoritmo

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Laboratorio di programmazione

Variabili e tipi di dato

LINGUAGGI DI PROGRAMMAZIONE!

Primi programmi in C

Input/Output di numeri

RAPPRESENTAZIONE DELL INFORMAZIONE

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Preprocessore, linker e libreria standard

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Lezione 2. Rappresentazione dell informazione

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Linguaggio C Informatica Grafica

Informatica I Facoltà di Ingegneria Prova scritta del 20/01/2014 TURNO A

Libreria standard Concetti chiave

IL LINGUAGGIO C TIPI DI DATO

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione alla programmazione in C

Lettura e scrittura da file. Lettura e scrittura da file

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Transcript:

Codifica dei Tipi di Dati in Linguaggio C In questa dispensa verrà illustrato come vengono codificati i tipi semplici del linguaggio C. In particolare considereremo i seguenti tipi di dato: il tipo intero corto (short int); il tipo intero (int); il tipo intero senza segno (unsigned short, unsigned int, unsigned long); il tipo reale a singola precisione (float); il tipo reale a doppia precisione (double); il tipo reale ad alta precisione (long double); il tipo carattere (char); La codifica dei dati dipende essenzialmente dal compilatore utilizzato. Nel seguito si farà riferimento solo al compilatore Dev-C++. 1.Il Tipo Intero corto (short o signed short) In linguaggio C il tipo short o signed short è un tipo intero che è codificato utilizzando la codifica in complemento a 2 su 16 bit (2 byte). 2.Il Tipo Intero Senza Segno (unsigned short) In linguaggio C il tipo unsigned short è un tipo intero che è codificato utilizzando la codifica senza segno su 16 bit (2 byte). 3.Il Tipo Intero (int o signed int) In linguaggio C il tipo int o signed int è codificato utilizzando la codifica in complemento a 2 su 32 bit (4 bytes). 4.Il Tipo Intero Senza Segno (unsigned int) In linguaggio C il tipo unsigned int è codificato utilizzando la codifica senza segno su 32 bit (4 bytes). 1

5.Il Tipo Intero Lungo (signed long int o signed long o long) In linguaggio C il tipo long o signed long int o signed long) è un tipo intero che è codificato utilizzando la codifica in complemento a 2 su 32 bit (4 byte). 6.Il Tipo Intero Lungo Senza Segno (unsigned long int o unsigned long) In linguaggio C il tipo unsigned long int o unsigned long è un tipo intero che è codificato utilizzando la codifica senza segno su 32 bit (4 byte). I base a quanto detto, la seguente tabella riassume le codifiche degli interi e i range di valori assunti. Type Numero di Codifica Valore Minimo Valore Massimo Bits signed short 16 Compl.2 32.768 32.767 unsigned 16 Senza Segno 0 65.535 short signed int 32 Compl.2 2.147.483.648 2.147.483.647 unsigned int 32 Senza Segno 0 4.294.967.295 signed long 32 Compl.2 2.147.483.648 2.147.483.647 unsigned long 32 Senza Segno 0 4.294.967.295 Il seguente programma in C permette di visualizzare sullo schermo i limiti riassunti dalla precedente tabella. Il programma fa uso della libreria limits.h che contiene le definizioni delle costanti SHRT_MIN, SHRT_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, USHRT_MAX, UINT_MAX e ULONG_MAX relative rispettivamente ai valori massimi e minini dei tipi short, int, long int, unsigned short, unsigned int e unsigned long int. 2

#include <stdio.h> #include <limits.h> printf("codifica del tipo SHORT \n"); printf("valore minimo = %d \n",shrt_min); printf("valore massimo = %d \n",shrt_max); printf("codifica del tipo INT \n"); printf("valore minimo = %d \n",int_min); printf("valore massimo = %d \n",int_max); printf("codifica del tipo LONG INT \n"); printf("valore minimo = %ld \n", LONG_MIN); printf("valore massimo =%ld \n", LONG_MAX); printf("codifica del tipo UNSIGNED SHORT \n"); printf("valore massimo = %u \n", USHRT_MAX); printf("codifica del tipo UNSIGNED INT \n"); printf("valore massimo = %u \n", UINT_MAX); printf("codifica del tipo UNSIGNED LONG INT \n"); printf("valore massimo = %lu \n", ULONG_MAX); 7.Il Tipo Reale a Singola Precisione (float) In linguaggio C il tipo float è codificato utilizzando la codifica IEEE 754 in Virgola Mobile su 32 bit (4 byte). 8.Il Tipo Reale a Doppia Precisione (double) In linguaggio C il tipo double è codificato utilizzando la codifica IEEE in Virgola Mobile su 64 bit (8 byte). 9.Il Tipo Reale a Doppia Precisione (long double) In linguaggio C il tipo long double è codificato utilizzando la codifica IEEE in Virgola Mobile su 80 bits (10 bytes). La seguente tabella riassume i limiti delle codifiche IEEE dei reali. 3

Type Codifica Valore Minimo Valore Massimo float IEEE 754 1.17 x 10-38 3.4 x 10 +38 double IEEE 754 2.2 x 10-308 1.7 x 10 +308 long double Estensione IEEE 754 a 80 bit 3.4 x 10-4932 1.1 x 10 +4932 Il seguente programma in C permette di visualizzare sullo schermo i limiti appena descritti. Il programma fa uso della libreria float.h che contiene le definizioni delle costanti FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX, LDBL_MIN, LDBL_MAX relative rispettivamente ai valori massimi e minini dei tipi float, double e long double. #include <stdio.h> #include <float.h> printf("codifica del tipo FLOAT \n "); printf("valore minimo = %e \n", FLT_MIN); printf("valore massimo = %e \n", FLT_MAX); printf("codifica del tipo DOUBLE \n "); printf("valore minimo = %e \n", DBL_MIN); printf("valore massimo = %e \n", DBL_MAX); printf("codifica del tipo LONG DOUBLE \n "); printf("valore minimo = %Le \n", LDBL_MIN); printf("valore massimo = %Le \n", LDBL_MAX); 10.Il Tipo Carattere (char) Il tipo carattere (char) in linguaggio C occupa 1 byte, e utilizza la codifica ASCII (pronunciato "aschi"). Il seguente programma permette di visualizzare tutti i codici ASCII (da 0 a 255): 4

#include<stdio.h> unsigned short i; for (i=0; i<256; i++) printf("\ncarattere ASCII n.%u = %c ",i,i); 5