Integerkonstanten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Konstanten (Übersicht) - Index

Integerkonstanten können dezimale (Basis 10), oktale (Basis 8) oder hexadezimale (Basis 16) Zahlen sein.

Dezimalkonstanten

Es sind Dezimalkonstanten von 0 bis 4.294.967.295 zulässig. Konstanten außerhalb dieses Bereichs werden entsprechend abgeschnitten. Dezimalkonstanten müssen nicht mit Null initialisiert werden. Eine mit Null initialisierte Integerkonstante wird als oktale Konstante interpretiert. Dazu ein Beispiel:

int i = 10;  /*decimal 10 */
int i = 010; /*decimal 8 */
int i = 0;   /*decimal 0 = octal 0 */

Oktale Konstanten

Alle mit Null initialisierten Konstanten werden als oktale Konstanten interpretiert. Enthält eine oktale Konstante die unzulässigen Ziffern 8 oder 9, wird ein Fehler ausgegeben. Oktale Konstanten werden abgeschnitten, wenn sie größer als 037777777777 sind.

Hexadezimale Konstanten

Alle Konstanten, die mit 0x (oder 0X) beginnen, werden als hexadezimale Konstanten interpretiert. Hexadezimale Konstanten werden abgeschnitten, wenn sie größer als 0xFFFFFFFF sind.

Integerkonstanten mit den Suffixen L und U

Beinhaltet eine Konstante das Suffix L (oder l) wird die Konstante als long dargestellt. Das Suffix U (oder u) bedingt eine unsigned (vorzeichenlose) Konstante. Der Konstantentyp ist unsigned long, wenn ihr Wert größer als dezimal 65.535 ist, unabhängig von der verwendeten Basis.

Eine Konstant mit dem Suffix U (oder u) hat den Datentyp unsigned int oder unsigned long int, je nachdem, welcher Typ ihren Wert zuerst aufnehmen kann.

Eine Konstant mit dem Suffix L (oder l) hat den Datentyp long int oder unsigned long int, je nachdem, welcher Typ ihren Wert zuerst aufnehmen kann.

Sie können die beiden Suffixe L und U für dieselbe Konstante in beliebiger Reihenfolge oder Schreibweise verwenden: ul, lu, UL usw. Hat eine Konstante die beiden Suffixe L und U (ul, lu, Ul, lU, uL, Lu, LU oder UL) ist ihr Datentyp unsigned long int.

Integerkonstanten ohne die Suffixe L oder U

Sind keine Suffixe (U, u, L oder l) vorhanden, wird der Datentyp einer Integerkonstante von ihrem Wert abgeleitet. Der Datentyp wird als der Typ definiert, der als erster der folgenden Typen den Wert der Integerkonstante aufnehmen kann:

Dezimalkonstanten

int, long int, unsigned long int

Oktale Konstanten

int, unsigned int, long int, unsigned long int

Hexadezimale Konstanten

int, unsigned int, long int, unsigned long int


Die folgende Tabelle enthält die Definition des Datentyps entsprechend dem Wert der Integerkonstante.

Dezimalkonstanten - abgeleitete Typen:

Konstantenwert

Abgeleiteter Datentyp

0 to 32,767

int

32,768 to 2,147,483,647

long

2,147,483,648 to 4,294,967,295

unsigned long

> 4294967295

wird abgeschnitten


Oktale Konstanten - abgeleitete Typen:

Konstantenwert

Abgeleiteter Datentyp

00 to 077777

int

010000 to 0177777

unsigned int

02000000 to 017777777777

long

020000000000 to 037777777777

unsigned long

> 037777777777

wird abgeschnitten


Hexadezimalkonstanten - abgeleitete Typen:

Konstantenwert

Abgeleiteter Datentyp

0x0000 to 0x7FFF

int

0x8000 to 0xFFFF

unsigned int

0x10000 to 0x7FFFFFFF

long

0x80000000 to 0xFFFFFFFF

unsigned long

> 0xFFFFFFFF

wird abgeschnitten

Beachten Sie, dass für dezimale und nichtdezimale Konstanten unterschiedliche Regeln gelten.


Integerkonstanten mit Größensuffixen

Mit einem Größensuffix können Sie die Anzahl der Bytes angeben, die im Arbeitsspeicher von einer Integerkonstante belegt werden (die Größe einer Integerkonstante). Sie können die folgende Größensuffixe verwenden: i8, I8, i16, I16, i32, I32, i64 und I64.

Einem Größensuffix können die Suffixe unsigned - U (oder u) vorangestellt werden. Zum Beispiel: ui8, Ui16, UI32, ui64 usw.

Das Größensuffix muss exakt mit dem deklarierten erweiterten Integertyp der Integerkonstante übereinstimmen. Sie können beispielsweise die folgenden Integerkonstanten der erweiterten Integertypen verwenden:

__int16 s = 32767i16;
unsigned __int16 us = 64532Ui16;
unsigned __int32 ui = 223456789uI32;

Siehe auch