[ Foro de C ]

Integers de 64 bits...

24-Sep-2008 17:31
Carlos Ruiz
3 Respuestas

Holap:

Me gustaría saber si en C es posible manipular números de 64 bits...
Es verdad que con un "unsigned long int" (32 bits) tenemos hasta más de 4 mil millones... pero me interesa mucho manejar numeros muuuuuuy grandes.

Puede alguien decirme si existe una librería para lo que pretendo?
Si la respuesta es sí...
Cómo se instala en Windows? Cómo se instala en Ubuntu?

Saludooos :P



25-Sep-2008 01:21
Nacho Cabanes (+31)

En C, el tamaño máximo de un tipo de datos (por ejemplo, int) depende del sistema operativo y del compilador.

Aun así, si usas GCC (el compilador de GNU), que es el compilador habitual en Linux, y el que se instala bajo Windows si usas MinGW, Dev-C++ o CodeBlocks, existe un tipo de datos "long long" de 64 bits, sin necesidad de ninguna librería adicional.

En general, puedes saber hasta donde permite cada tipo de datos, si miras el fichero "limits.h" de la carpeta "include".


25-Sep-2008 03:12
Carlos Ruiz

Holap:

Muchas gracias por la respuesta, estimado Nacho.

Tengo otra duda:
Para imprimir en la pantalla (con un printf();) un long int, usamos %d... o %u si es unsigned... bueno,
¿¿Cómo se imprime un long long??

Saludooos :P


26-Sep-2008 01:07
Nacho Cabanes (+31)

Un int se imprime con %d (o %u si es unsigned, o %x si se quiere ver en hexadecimal).

El modificador "l" indica "long", así un "long int" se muestra (y se lee) con %ld (o %lu)

Para un "long long", se duplica el modificador: %lld, %llu, %llx






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)