Constantes enteras de C++
Las constantes de tipo entero son los datos constantes que no tienen ninguna fracciones o exponente.Siempre empiezan con un dígito.Puede especificar constantes enteras en decimal, octal, o formato hexadecimal.Se pueden especificar con signo o tipos sin signo y larga o colocar en short tipos.
Gramática
entero-constante:
entero-sufijo de la decimal-constanteoptentero-sufijo de la octal-constanteopt
entero-sufijo de constante hexadecimalopt
C char-secuencia**'de'**
decimal-constante:
no-cero-dígitodígito de la decimal-constante
octal-constante:
0octal-dígito de la octal-constante
constante hexadecimal:
dígito hexadecimal de0xdígito hexadecimal de 0X
dígito hexadecimal de constante hexadecimal
no-cero-dígito: uno de
1 2 3 4 5 6 7 8 9octal-dígito: uno de
0 1 2 3 4 5 6 7dígito hexadecimal: uno de
0 1 2 3 4 5 6 7 8 9una f de d e de la b c
OBJETO F OF TABLE D E IZQUIERDA C OF TABLE B
entero-sufijo:
largo-sufijo de sin signo-sufijooptsin signo-sufijo de largo-sufijoopt
sin signo-sufijo: uno de
u Ulargo-sufijo: uno de
l de lentero-sufijo 64 bits:
ll de i64 LL
Para especificar constantes enteras mediante la notación octal o hexadecimal, utilice un prefijo que denote base.Para especificar una constante entera de un tipo determinado de entero, utilice un sufijo que denote el tipo.
Para especificar una constante decimal, inicie la especificación con un dígito cero.Por ejemplo:
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 una constante octal, inicie la especificación con 0, seguido por una secuencia de dígitos en el intervalo de 0 a 7.los dígitos 8 y 9 son errores en especificar una constante octal.Por ejemplo:
int i = 0377; // Octal constant
int j = 0397; // Error: 9 is not an octal digit
Para especificar una constante hexadecimal, inicie la especificación con 0x o 0X (el caso de “x” no tiene asunto), seguido de una secuencia de dígitos en el intervalo 0 con 9 y a (o A) con f (o F).Los dígitos hexadecimales a (o A) con f (o F) representan valores en el intervalo de 10 a 15.Por ejemplo:
int i = 0x3fff; // Hexadecimal constant
int j = 0X3FFF; // Equal to i
para especificar un tipo sin signo, utilice el sufijo de S o de S .Para especificar un tipo long, utilice l o el sufijo de l .Por ejemplo:
unsigned uVal = 328u; // Unsigned value
long lVal = 0x7FFFFFL; // Long value specified
// as hex constant
unsigned long ulVal = 0776745ul; // Unsigned long value
Para especificar un tipo de 64 bits de entero, utilice el LL, el ll o el sufijo i64.Por ejemplo,
// 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);
}
Output
in f1(int)
in f1(__int64)