Beh... la calcolatrice di Windows mi calcola alla perfezione 2^64 (con un processore a 32 bit!!).
Direi che non ha senso parlare dei bit del processore, ma solo dell'ampiezza di bit con la quale si decidono di rappresentare i numeri (un long di Java viene rappresentato con 8 byte = 64 bit)
Quindi, almeno in teoria (FORTE TEORIA) il limite massimo per la rappresentazione di un numero è la dimensione della memoria del PC. Questo è un limite asintotico in quanto non è possibile usarla proprio tutta, altrimenti dove lo mettiamo a girare il sistema operativo e l'applicativo che rappresenta il numero stesso?
Se superi questo limite non ti si fotte niente: si genera, semplicemente, un errore che si chiama OVERFLOW; semplicemente il calcolo riprende da 0.
Sipponiamo di avere a disposizione 3 bit. Questi sono i valori rappresentabili:
000
001
010
011
100
101
110
111
Dopo l'ultimo valore i bit a nostra disposizione esauriscono, quindi, siccome il computer è una macchina stupida (e del resto non potrebbe fare altrimenti) si comporta come le hanno insegnato: dopo la cifra 0 si mette un 1 e viceversa (variando opportunamente le cifre di ordine superirore), quindi si ritorna a 000.
Ciao.



Rispondi quotando