Autor Thema: Hexadezimal zahlen mit LL (Global Descriptor Table)  (Gelesen 5719 mal)

aMen

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
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

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 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.)
« Letzte Änderung: 10. July 2010, 02:01 von PorkChicken »
Dieser Text wird unter jedem Beitrag angezeigt.

aMen

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 10. July 2010, 03:21 »
Ahhh

Vielen Dank, das hat mir sehr weiter geholfen!

Mfg aMen

 

Einloggen