Udostępnij za pośrednictwem


Stałe całkowite języka C

Stała całkowita to liczba dziesiętna (podstawa 10), ósemkowa (podstawa 8) lub szesnastkowa (podstawa 16), która reprezentuje wartość całkowitą. Użyj stałych całkowitych, aby reprezentować wartości całkowite, których nie można zmienić.

Składnia

integer-constant:
decimal-constantinteger-suffixZdecydować
octal-constantinteger-suffixZdecydować
hexadecimal-constantinteger-suffixZdecydować

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: jeden z
0x 0X

nonzero-digit: jeden z
1 2 3 4 5 6 7 8 9

octal-digit: jeden z
0 1 2 3 4 5 6 7

hexadecimal-digit: jeden z
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-suffixlong-suffixZdecydować
unsigned-suffix long-long-suffix
unsigned-suffix 64-bit-integer-suffix
long-suffixunsigned-suffixZdecydować
long-long-suffixunsigned-suffixZdecydować
64-bit-integer-suffix

unsigned-suffix: jeden z
u U

long-suffix: jeden z
l L

long-long-suffix: jeden z
ll LL

64-bit-integer-suffix: jeden z
i64 I64

Sufiksy i64 i I64 są specyficzne dla firmy Microsoft.

Stałe całkowite są dodatnie, chyba że są poprzedzone znakiem minus (-). Znak minus jest interpretowany jako jednoargumentowy operator negacji arytmetycznej. (Zobacz Jednoargumentowe operatory arytmetyczne w celu uzyskania informacji o tym operatorze).

Jeśli stała całkowita zaczyna się od 0x lub 0X, jest szesnastkowa. Jeśli zaczyna się od cyfry 0, jest to ósemka. W przeciwnym razie zakłada się, że jest to liczba dziesiętna.

Następujące stałe całkowite są równoważne:

28
0x1C   /* = Hexadecimal representation for decimal 28 */
034    /* = Octal representation for decimal 28 */

Znaki odstępu nie mogą rozdzielać cyfr stałej całkowitej. W tych przykładach pokazano prawidłowe stałe dziesiętne, ósemkowe i szesnastkowe.

    /* 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;

Zobacz też

Stałe języka C