Lenguaje C - Manejo de enteros de 64 bits
Básicamente, en el lenguaje C, un número sin firmar de más de 32 bits no puede exceder el valor de 4, 294, 967, 295.
Es posible que tenga que manejar números más grandes y para esto necesita que estos números se codifiquen en 64 bits.
Sin embargo, esto no se maneja de la misma manera que un entero normal. Deben definirse de manera diferente.
Entero de 64 bits sin firmar
Tipo: sin firmar largo largo
Formato para la visualización: % llu
Sufijo para definir una constante: ULL
Ejemplo:
// Asignar el valor en un 4294967296 largo sin firmar largo a = 4294967296ULL; // Mostrar el valor printf ("% llu", a);
Entero de 64 bits firmado
Tipo: largo largo
Formato para la visualización: % lld
Sufijo para definir una constante: LL
Ejemplo:
// Asignar el valor en un 4294967296 long long a = 4294967296LL; // Mostrar el valor printf ("% lld", a);
Usando un sufijo inusual para definir un valor constante
Sin firmar largo largo a = 4294967296
Su compilador le indicará que este número es demasiado grande para el tipo "largo". Este concepto está directamente relacionado con la arquitectura de los procesadores de 32 bits. Un procesador de 32 bits es limitado y su compilador predeterminado intentará ajustar los números en un registro. Pero con un sufijo como LL y ULL, su compilador almacenará su número en 2 registros, es decir, en 64 bits, lo que permitirá números considerablemente más grandes.