Linguaggio C: gestione di numeri interi a 64 bit
Fondamentalmente in linguaggio C, un numero senza segno su 32 bit non può superare il valore di 4.294.967.295.
Potresti scoprire che sei tenuto a gestire numeri più grandi e per questo hai bisogno che questi numeri siano codificati a 64-bit.
Tuttavia, questo non è gestito allo stesso modo di un intero ordinario. Devono essere definiti diversamente.
Numero intero a 64 bit senza segno
Tipo: non firmato lungo
Formattazione per la visualizzazione: % llu
Suffisso per definire una costante: ULL
Esempio:
// Assegna il valore in 4294967296 unsigned long long a = 4294967296ULL; // Mostra il valore printf ("% llu", a);
Numero intero a 64 bit firmato
Tipo: lungo lungo
Formattazione per la visualizzazione: % lld
Suffisso per definire una costante: LL
Esempio:
// Assegna il valore in 4294967296 long long a = 4294967296LL; // Mostra il valore printf ("% lld", a);
Utilizzo di un suffisso insolito per definire un valore costante
Lungo non firmato a = 4294967296
Il tuo compilatore ti chiederà che questo numero è troppo grande per il tipo "lungo". Questo concetto è direttamente correlato all'architettura dei processori a 32 bit. Un processore a 32 bit è limitato e il compilatore predefinito proverà ad adattare i numeri in un registro. Ma con un suffisso come LL e ULL, il compilatore memorizzerà il tuo numero su 2 registri, cioè a 64 bit, consentendo quindi numeri considerevolmente più grandi.