Compartilhar via


Constantes de inteiro C

Uma constante de inteiro é um número decimal (base 10), octal (base 8) ou hexadecimal (base 16), que representa um valor integral. Use constantes de inteiros para representar valores inteiros que não podem ser alterados.

Sintaxe

integer-constant:
decimal-constantinteger-suffixopt
octal-constantinteger-suffixopt
hexadecimal-constantinteger-suffixopt

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: um de
0x 0X

nonzero-digit: um de
1 2 3 4 5 6 7 8 9

octal-digit: um de
0 1 2 3 4 5 6 7

hexadecimal-digit: um de
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-suffixopt
unsigned-suffix long-long-suffix
unsigned-suffix 64-bit-integer-suffix
long-suffixunsigned-suffixopt
long-long-suffixunsigned-suffixopt
64-bit-integer-suffix

unsigned-suffix: um de
u U

long-suffix: um de
l L

long-long-suffix: um de
ll LL

64-bit-integer-suffix: um de
i64 I64

Os sufixos i64 e I64 são específicos da Microsoft.

Constantes de inteiros são positivas, a menos que sejam precedidas por um sinal de subtração (-). O sinal de subtração é interpretado como o operador aritmético unário de negação. (Consulte Operadores aritméticos unários para obter informações sobre este operador.)

Se uma constante de inteiro começa com 0x ou 0X, ela é hexadecimal. Se começa com o dígito 0, é octal. Caso contrário, é considerada decimal.

As seguintes constantes de inteiro são equivalentes:

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

Nenhum caractere de espaço em branco pode separar os dígitos de uma constante de inteira. Esses exemplos mostram algumas constantes decimais, octais e hexadecimais válidas.

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

Confira também

Constantes C