19/10/11 18:07
Qwertj
Il problema è di overflow: la variabile lenght è di un tipo troppo piccolo per contenere un numero del genere. Prova a usare un tipo unsigned (siccome lunghezze negative non esistono) e magari bello lungo, tipo UInt64.
Il fatto che dia divisione per zero è che quando una variabile vale ad esempio (in binario)
11111111
E lo spazio riservato per quella variabile è un byte (8 bit), se io aggiungo uno ottengo
100000000
Ma siccome il computer va a prendere solo i primi 8 bit, per lui la variabile è diventata 00000000, cioè zero
Il fatto che dia divisione per zero è che quando una variabile vale ad esempio (in binario)
11111111
E lo spazio riservato per quella variabile è un byte (8 bit), se io aggiungo uno ottengo
100000000
Ma siccome il computer va a prendere solo i primi 8 bit, per lui la variabile è diventata 00000000, cioè zero
aaa