Lowlevel

Lowlevel => Das Wiki => Thema gestartet von: aMen am 10. July 2010, 01:00

Titel: Hexadezimal zahlen mit LL (Global Descriptor Table)
Beitrag von: aMen am 10. July 2010, 01:00
Juchuu

Im Wiki findet sich Hexadezimalzahlen mit "LL".
also Beispielsweiße :
0xffffLL
oder
0xffffffLL
Ich hab jedoch noch nie eine Hexadezimalzahl gefunden die ein "L" enthält.

Google findet nur verweiße auf diese Seite oder Foren, die sich auf diese Seite beziehen.

Aber was heißt dieses "LL"?


Danke schonmal

MFG
Titel: Re:Hexadezimal zahlen mit LL (Global Descriptor Table)
Beitrag von: Jidder am 10. July 2010, 01:56
Hi,

der LL-Suffix sorgt dafür, dass diese Konstante 0xffff vom Typ long long ist, also eine 64-Bit-Konstante. Die Zeichen in LL sind folglich keine Ziffern, sondern spezifizieren den Typ der Konstante. (Es gibt analog auch L, UL und ULL für long, unsigned long bzw. unsigned long long.)

Der Zweck ist den Compiler zu zwingen, die Zwischenergebnisse wie z.B. flags & 0xffLL als 64-Bit-Wert zu betrachten, damit er den darauffolgenden Shift um 40 auch wie gewünscht durchführt. (Würde das LL fehlen, wäre der Wert vom Typ int. Der ist nur 32 Bit groß ist, und der Shift um 40 würde nicht funktionieren.)
Titel: Re:Hexadezimal zahlen mit LL (Global Descriptor Table)
Beitrag von: aMen am 10. July 2010, 03:21
Ahhh

Vielen Dank, das hat mir sehr weiter geholfen!

Mfg aMen