C-Ganzzahlkonstanten
Eine Ganzzahlkonstante ist eine dezimale (Basis 10), oktale (Basis 8) oder hexadezimale Zahl (Basis 16), die einen ganzzahligen Wert darstellt. Verwenden Sie ganzzahlige Konstanten, um ganzzahlige Werte darzustellen, die nicht geändert werden können.
Syntax
integer-constant
:
decimal-constant
integer-suffix
opt
octal-constant
integer-suffix
opt
hexadecimal-constant
integer-suffix
opt
decimal-constant
:
nonzero-digit
decimal-constant
digit
octal-constant
:
0
octal-constant
octal-digit
hexadecimal-constant
:
hexadecimal-prefix
hexadecimal-digit
hexadecimal-constant
hexadecimal-digit
hexadecimal-prefix
: einer von
0x
0X
nonzero-digit
: einer von
1 2 3 4 5 6 7 8 9
octal-digit
: einer von
0 1 2 3 4 5 6 7
hexadecimal-digit
: einer von
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F
integer-suffix
:
unsigned-suffix
long-suffix
opt
unsigned-suffix
long-long-suffix
unsigned-suffix
64-bit-integer-suffix
long-suffix
unsigned-suffix
opt
long-long-suffix
unsigned-suffix
opt
64-bit-integer-suffix
unsigned-suffix
: einer von
u U
long-suffix
: einer von
l L
long-long-suffix
: einer von
ll LL
64-bit-integer-suffix
: einer von
i64 I64
Die Suffixe i64
und I64
sind Microsoft-spezifisch.
Ganzzahlige Konstanten sind positiv, es sei denn, ihnen wird ein Minuszeichen (-
) vorangestellt. Das Minuszeichen wird als unärer arithmetischer Negationsoperator interpretiert. (Weitere Informationen zu diesen Operator finden Sie auf der Seite Unäre arithmetische Operatoren.)
Wenn eine ganzzahlige Konstante mit 0x
oder 0X
beginnt, ist sie hexadezimal. Wenn sie mit der Ziffer 0
beginnt, ist sie oktal. Andernfalls wird davon ausgegangen, dass es sich um ein Dezimal handelt.
Die folgenden ganzzahligen Konstanten sind gleichwertig:
28
0x1C /* = Hexadecimal representation for decimal 28 */
034 /* = Octal representation for decimal 28 */
Die Ziffern einer ganzzahligen Konstante können nicht durch Leerzeichen getrennt werden. In diesen Beispielen werden einige gültige dezimale, oktale und hexadezimale Konstanten veranschaulicht.
/* Decimal Constants */
int dec_int = 28;
unsigned dec_uint = 4000000024u;
long dec_long = 2000000022l;
unsigned long dec_ulong = 4000000000ul;
long long dec_llong = 9000000000LL;
unsigned long long dec_ullong = 900000000001ull;
__int64 dec_i64 = 9000000000002I64;
unsigned __int64 dec_ui64 = 90000000000004ui64;
/* Octal Constants */
int oct_int = 024;
unsigned oct_uint = 04000000024u;
long oct_long = 02000000022l;
unsigned long oct_ulong = 04000000000UL;
long long oct_llong = 044000000000000ll;
unsigned long long oct_ullong = 044400000000000001Ull;
__int64 oct_i64 = 04444000000000000002i64;
unsigned __int64 oct_ui64 = 04444000000000000004uI64;
/* Hexadecimal Constants */
int hex_int = 0x2a;
unsigned hex_uint = 0XA0000024u;
long hex_long = 0x20000022l;
unsigned long hex_ulong = 0XA0000021uL;
long long hex_llong = 0x8a000000000000ll;
unsigned long long hex_ullong = 0x8A40000000000010uLL;
__int64 hex_i64 = 0x4a44000000000020I64;
unsigned __int64 hex_ui64 = 0x8a44000000000040Ui64;