prof. Nunzio Brugaletta | BIt WOrld |
Intanto occorre chiarire che si definisce un tipo di dato numerico o alfanumerico, non tanto in base ai simboli utilizzati (lettere o cifre numeriche), quanto piuttosto in base alle operazioni che si intendono effettuare su di esso. Se le operazioni previste sono quelle dell'aritmetica elementare (somme, sottrazioni, moltiplicazioni, divisioni) si parlerà di formati numerici, negli altri casi si parlerà di formati alfanumerici. Per esempio il Codice di Avviamento Postale (CAP) di una città è un dato alfanumerico e così lo sarà anche, per esempio, un numero di telefono o il numero di partita IVA di una azienda.
A parte il fatto che, come ricordato prima, nella rappresentazione dei numeri all'interno di un computer viene utilizzato un codice che prevede solo due simboli (codice binario), c'è una ulteriore differenza con i numeri che si utilizzano nelle comuni elaborazioni umane. La dimensione della memoria fisica di un computer porta come conseguenza l'uso, per i numeri, di aritmetica a precisione finita e fissa. Per esempio: se si potessero conservare numeri in formato decimale, se si stabilisse di utilizzare 2 cifre per la rappresentazione dei numeri decimali interi e senza segno, si potrebbero rappresentare solo i numeri che rientrano fra: 00, 01, 02, ... 99.
Le operazioni all'interno di questo insieme di numeri evidenziano alcuni limiti:
05 + 98 = 103
05 - 08 = -3
La prima operazione produce un risultato più grande del più grande numero rappresentabile con la convenzione utilizzata e, quindi, non è rappresentabile. Lo stesso vale per la seconda operazione solo che, stavolta, il risultato non è rappresentabile perché più piccolo del più piccolo disponibile. Nel primo caso si parla di un errore di overflow, nel secondo di un errore di underflow.
05 / 02 = 2.5
In questo caso il risultato non è rappresentabile perché non fa parte dell'insieme dei numeri rappresentabili: è di altro tipo.
Anche se si modificano le convenzioni per la rappresentazione dei numeri, i problemi evidenziati si pongono sempre. In definitiva, rispetto alla Matematica, i risultati di certe operazioni, nel mondo dell'aritmetica a precisione finita, sono sbagliati. Tutto ciò non vuol dire che i computer non sono macchine affidabili, altrimenti non sarebbero universalmente presenti, ma che bisogna conoscerne il funzionamento in modo da avere presente limiti e campo di applicabilità.
http://ennebi.solira.org | ennebi@solira.org |