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-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
: 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-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
: 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;