Nel momento in cui si vuole inserire un numero in un linguaggio di programmazione, è sufficiente indicarne il tipo e il nome della variabile alla quale si intende assegnare quel valore numerico. Al numero viene associata una locazione di memoria che consiste in una sequenza di bit. Per quanto riguarda i valori interi, in particolari gli Integer, la locazione di memoria a disposizione varia da 32 bit o da 64 bit. La loro rappresentazione quindi varierà tra un minimo intero e un massimo intero. All’interno di questo range noi possiamo rappresentare tutti quanti i valori. Se provassimo a rappresentare un numero che si trova al di fuori di questo range, si verificherebbe un overflow.
Nei casi di overflow, mentre VB.NET li segnala attraverso un messaggio di errore, C# non esegue questa segnalazione generando dati sbagliati. Per risolevere il problema, in C#, si deve selezionare manualmente nelle proprietà del progetto che si sta realizzando il check dell’overflow. Se invece si vuole valutare l’overflow solo su determinati pezzi di codice e non su tutto il progetto, C# permette di racchiudere la porzione di codice che si intende analizzare tra parentesi graffe, preceduta dalla parola chiave checked.
Per quanto riguarda invece le rappresentazioni Floating point (Single/Float a 32 bit, Double a 64 bit, Decimal a 128 bit), abbiamo sempre una locazione di memoria costituita da una sequenza di bit. Questo insieme di bit rappresenterà il segno del numero, la mantissa (cioè le cifre significative) e un certo numero di bit sarà riservato all’esponente. Anche in questo caso abbiamo un range di bit delimitato da un minimo e da un massimo e, se provassimo a rappresentare un numero che si trova al di fuori di questo range, si verificherebbe un overflow. Inoltre, se consideriamo un intervallo sufficientemente piccolo di 0, non avremo alcuna rappresentazione nel momento in cui si supera il valore più piccolo rappresentabile, il successivo sarà 0. Si parla in questo caso di underflow.
Pertanto, i valori valori di minimo e massimo rappresentabili dipendono dal tipo che si sta trattando.
