C-Sprache - Behandlung von 64-Bit-Ganzzahlen
Grundsätzlich darf in der Sprache C eine vorzeichenlose Zahl über 32 Bit den Wert von 4.294.967.295 nicht überschreiten.
Möglicherweise müssen Sie mit größeren Zahlen umgehen. Dazu müssen Sie diese Zahlen in 64-Bit codieren.
Dies wird jedoch nicht wie eine gewöhnliche Ganzzahl behandelt. Sie müssen unterschiedlich definiert werden.
64-Bit-Ganzzahl ohne Vorzeichen
Typ: unsigned long long
Formatierung für die Anzeige: % llu
Suffix zur Definition einer Konstante: ULL
Beispiel:
// Weisen Sie den Wert in einem 4294967296 vorzeichenlosen langen langen zu. A = 4294967296ULL; // Zeige den Wert printf ("% llu", a);
64-Bit-Ganzzahl mit Vorzeichen
Typ: lang lang
Formatierung für die Anzeige: % lld
Suffix zur Definition einer Konstante: LL
Beispiel:
// Weisen Sie den Wert in einem 4294967296 long long zu. A = 4294967296LL; // Zeige den Wert printf ("% lld", a);
Verwenden eines ungewöhnlichen Suffixes zum Definieren eines konstanten Werts
Unsigned long long a = 4294967296
Ihr Compiler meldet Ihnen, dass diese Zahl für den Typ "long" zu groß ist. Dieses Konzept steht in direktem Zusammenhang mit der Architektur von 32-Bit-Prozessoren. Ein 32-Bit-Prozessor ist begrenzt, und Ihr Standardcompiler versucht, die Zahlen in eine Registrierung einzupassen. Mit einem Suffix wie LL und ULL speichert Ihr Compiler Ihre Nummer jedoch in 2 Registern, dh in 64-Bit, und ermöglicht so erheblich größere Nummern.