Constantes de inteiro do C++
Constantes de inteiro são os elementos de constante de dados que não têm peças fracionários ou expoentes.Eles sempre começam com um dígito.Você pode especificar constantes inteiras em octal, hexadecimal ou decimal.Eles podem especificar os tipos de sinal ou e longa ou curta.
Gramática
constante de inteiro:
sufixo de número inteiro de constante decimaloptsufixo de número inteiro de constante octalopt
inteiro hexadecimal constante-sufixoopt
'c-char-sequence'
constante decimal:
dígitos diferente de zeroDígito decimal constante
constante octal:
0constante octal dígito octal
constante hexadecimal:
0 xum dígito hexadecimal0 Xum dígito hexadecimal
Dígito hexadecimal constante hexadecimal
diferente de zero dígitos: um dos
1 2 3 4 5 6 7 8 9Dígito octal: um dos
0 1 2 3 4 5 6 7Dígito hexadecimal: um dos
0 1 2 3 4 5 6 7 8 9a b c e d ' f
A B C D E F
sufixo de número inteiro:
sufixo unsigned long-sufixooptsufixo unsigned long-sufixoopt
sufixo unsigned: um dos
u usufixo de longa: um dos
l lsufixo de número inteiro de 64 bits:
ll LL i64
Para especificar as constantes de inteiro usando a notação octal ou hexadecimal, use um prefixo que denota a base.Para especificar uma constante de inteiro de um determinado tipo integral, use um sufixo que denota o tipo.
Para especificar uma constante decimal, comece a especificação com um dígito diferente de zero.Por exemplo:
int i = 157; // Decimal constant
int j = 0198; // Not a decimal number; erroneous octal constant
int k = 0365; // Leading zero specifies octal constant, not decimal
Para especificar uma constante octal, comece a especificação com 0, seguido por uma seqüência de dígitos no intervalo de 0 a 7.Os dígitos de 8 e 9 são erros de especificar uma constante octal.Por exemplo:
int i = 0377; // Octal constant
int j = 0397; // Error: 9 is not an octal digit
Para especificar uma constante hexadecimal, comece com a especificação de 0x ou 0X (no caso do "x" não importa), seguido por uma seqüência de dígitos no intervalo 0 por meio de 9 e a (ou A) por meio de f (ou F).Dígitos hexadecimais a (ou A) por meio de f (ou F) representam os valores no intervalo de 10 a 15.Por exemplo:
int i = 0x3fff; // Hexadecimal constant
int j = 0X3FFF; // Equal to i
Para especificar um tipo não assinado, use o u ou u sufixo.Para especificar um tipo long, use o l ou l sufixo.Por exemplo:
unsigned uVal = 328u; // Unsigned value
long lVal = 0x7FFFFFL; // Long value specified
// as hex constant
unsigned long ulVal = 0776745ul; // Unsigned long value
Para especificar um tipo integral de 64 bits, use a LL, o sufixo ll ou i64.Por exemplo,
// 64bitsuffix.cpp
#include <stdio.h>
enum MyEnum {
IntType,
Int64Type
};
MyEnum f1(int) {
printf("in f1(int)\n");
return IntType;
}
MyEnum f1(__int64) {
printf_s("in f1(__int64)\n");
return Int64Type;
}
int main() {
MyEnum t1 = f1(0x1234), t2 = f1(0x1234i64);
}
Saída
in f1(int)
in f1(__int64)