Linguaggio C per MSX – lezione 2

da | Nov 17, 2023 | Linguaggio C | 0 commenti

Linguaggio C per MSX

Rubrica a cura di Nicola Brogelli (Parte 2)

Conversioni di Tipo

Come abbiamo visto nella dispensa precedente, in C ogni dato ha un Tipo ben definito. Quando in una espressione compaiono variabili di tipo diverso, spesso il compilatore è in grado di gestire senza l’intervento del programmatore la conversione tra i tipi. In altri casi invece è richiesto che la conversione sia eseguita in modo esplicito dal programmatore. Un fattore da tenere presente, quando si parla di conversioni, è che non sempre una conversione di tipo preserva il valore: ad esempio nella conversione da float a int in generale si riscontra una perdita di precisione, perché la rappresentazione adottata per gli interi è inferiore con quella adottata per i reali. Da questo punto di vista si può distinguere tra conversione di tipo con perdita di informazione e conversione di tipo senza perdita di informazione. In particolare in quest’ultimo caso si parla di promozione di tipo e avviene quando ad esempio una espressione un tipo int viene promosso a reale.

Conversioni implicite

Quando un’espressione del tipo x op y coinvolge operandi di tipo diverso, avviene una conversione implicita secondo le seguenti regole:

  1. quando in una espressione sono in gioco gli interi e i reali, gli operandi sono sempre convertiti a quello di lunghezza maggiore.
  2. se una espressione aritmetica viene assegnata ad una variabile di tipo intero o reale, il risultato dell’espressione viene convertito al tipo di variabile.
  3. Un tipo char o una enumerazione (vedremo in seguito) possono essere utilizzati ovunque si richieda l’utilizzo di un tipo intero.

int r = 0;
float a = 10.25;
float b = 3.11;
r = a + b; // Il risultato di r = 13

Conversioni esplicite

Questo tipo di conversione è a carico del programmatore, il quale richiede in modo esplicito di convertire un valore da un tipo ad un altro. L’operazione di conversione, anche definita come cast consiste nel nome del tipo della variabile a cui si deve effettuare la conversione, scritto fra parentesi tonde e posto davanti al valore o alla variabile da convertire.

int i = (int) 3.14;
float p = 3.14;
int i = (int)p; In entrambi i casi il valore di i sarà 3.

Se il contenuto ti ha soddisfatto qui trovi la terza dispensa.

Per chi fosse interessato l’Associazione MSX Italia ha creato un gruppo di lavoro di Ricerca e sviluppo sulla programmazione C per MSX. Per maggiori info: associazioneMSXitalia@gmail.com

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Linguaggio C per MSX – lezione 6

Linguaggio C per MSX – lezione 6

Linguaggio C per MSX Rubrica a cura di Nicola Brogelli (Parte 6) Array e Puntatori Array Multidimensionali             Fino ad ora abbiamo considerato array monodimensionali, i quali richiedevano un solo indice per l’individuazione di un elemento. Il C permette di...

Linguaggio C per MSX – lezione 6

Linguaggio C per MSX – lezione 5

Linguaggio C per MSX Rubrica a cura di Nicola Brogelli (Parte 5) Array e Puntatori Array Gli array sono sequenze di variabili dello stesso tipo che vengono memorizzare consecutivamente nella memoria ed alle quali è possibile accedere usando uno stesso nome...

Linguaggio C per MSX – lezione 3

Linguaggio C per MSX – lezione 3

Linguaggio C per MSX Rubrica a cura di Nicola Brogelli (Parte 3) Enumerazioni Gli enum o enumerazioni sono particolari tipi di dato che contengono un elenco di costanti, ciascuna delle quali è associata ad un valore intero. Nello specifico i valori costanti contenuti...

MSXgl una libreria di giochi scritta in C

MSXgl una libreria di giochi scritta in C

MSXgl è una libreria di giochi scritta in C e destinata ai computer MSX. L'obiettivo di questa libreria è quello di offrire ai programmatori C l'intero set di funzionalità per creare un gioco ad alte prestazioni. Anche se un programma C non potrà mai essere efficiente...

it_ITIT_IT