View Full Version : [C] Numeri interi a moltissime cifre
xsatellitex
19-12-2007, 16:19
Scusate sapete come dovrei fare per memorizzare in una variabile un intero a 18 o 36 cifre ??
Dovrei usare il tipo long long ?? e poi come si usa col printf :
long long int n;
printf("%???", n);
e se il numero è a 100 o 1000 cifre ??? sempre long long ? in che modo ??
amedeoviscido
19-12-2007, 16:25
Oddio... long long non lo avevo mai sentito :D
Comunque, con il tipo: "long int", a quattro byte (32 bit) puoi memorizzare numeri compresi fra -2,147,483,648 e +2,147,483,647 oppure, se senza segno, da zero a 4 miliardi e passa.
A questo punto devi implementare una classe che permetta di memorizzare interi ad otto byte, che ti può permettere di memorizzare numeri fra zero e 18.446.744.073.709.551.616
Se hai ancora più cifre da memorizzare, beh, EDIT: avevo scritto "sparati"...
Le soluzioni sono le più differenti, potresti utilizzare dei "long double" che ti permetterebbero di memorizzare numeri belli grossi, il problema è la precisione finita della mantissa, che ti permetterebbe appunto di memorizzare al max una ventina di cifre significative (anche se riusciresti a memorizzare numeri di diversi ordini di grandezza superiori), se invece devi utilizzare degli int, creati una classe che si appoggi a degli array o cose di questo tipo: comunque, direi chiedi se qualcuno te la scrive...
Scusate sapete come dovrei fare per memorizzare in una variabile un intero a 18 o 36 cifre ??
Dovrei usare il tipo long long ?? e poi come si usa col printf :
long long int n;
printf("%???", n);Il long long int è a 64 bit ed ha una precisione di 18~19 cifre decimali.
long long int n = 0x7fffffffffffffffLL;
printf ("%lld\n", n);
e se il numero è a 100 o 1000 cifre ??? sempre long long ?Ovviamente no! Dovresti usare librerie apposite per l'aritmetica "a precisione arbitraria". (es. GMP (http://gmplib.org)).
amedeoviscido
19-12-2007, 16:30
Ovviamente no! Dovresti usare librerie apposite per l'aritmetica "a precisione arbitraria". (es. GMP (http://gmplib.org)).
Ottima soluzione :D
xsatellitex
19-12-2007, 17:19
grazie :D :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.