2010-08-13 31 views

Respuesta

2

enteros de 64 bits (long, int64_t, unsigned long, uint64_t) debe hacer el truco, o si necesita decimales, double o long double.

+3

Si necesita decimales, no tiene suerte en C puro; 'double' y' long double' son tipos de coma flotante, no decimales. – Joey

+0

No. I * did * mencionó enteros de 64 bits también, que pueden contener más de 12 dígitos ¡incluso cuando se firman! –

+0

¿qué debo usar, por ejemplo, al imprimirlos? "% ld" fue por mucho tiempo como lo recordé? – DesperateCoders

0

bien en busca de una biblioteca llamada Bignum he encontrado este wiki page

4

Si usted tiene un tipo entero de 64 bits, me gustaría ir con eso, ya que le da al (18 dígitos completos) Rango:

−9,223,372,036,854,775,808 to 
+9,223,372,036,854,775,807 

para otras tareas (enteros o valores aún mayores masivas coma flotante), utilizo GMP, la biblioteca de precisión múltiple GNU. Su rendimiento es impresionante.

1

también puede usar "unsigned long long" con el especificador de formato "llu". Funciona bien para el número de 12 dígitos en C.

unsigned long long i=600851475143; 
printf("%llu",i); 
Cuestiones relacionadas