Integerkonstanten
Nach oben zu Konstanten (Übersicht) - Index
Integerkonstanten können dezimale (Basis 10
), oktale (Basis 8
) oder hexadezimale (Basis 16
) Zahlen sein.
Inhaltsverzeichnis
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
- Konstanten
- Gleitkommakonstanten
- Zeichenkonstanten
- Die drei char-Typen
- Escape-Sequenzen
- Wide-Character- und Mehr-Zeichenkonstanten
- String-Konstanten
- Aufzählungskonstanten
- Konstanten und ihre interne Darstellung
- Interne Darstellung numerischer Typen
- Konstantenausdrücke
- Erweiterte Integertypen: __int8, __int16, __int32, __int64