Konstanty typu Integer jazyka C++

Celočíselné konstanty jsou konstantní datové prvky, které nemají žádné zlomkové části nebo exponenty.Vždy začínají číslicí.Celočíselné konstanty je možné zadat v podobě desítkové, osmičkové nebo šestnáctkové.Je možné určit typy se znaménkem nebo bez znaménka, dlouhé nebo krátké.

Gramatika

  • integer-constant:
    decimal-constant integer-suffixopt

    octal-constant integer-suffixopt

    hexadecimal-constant integer-suffixopt

    'c-char-sequence'

  • decimal-constant:
    nonzero-digit

    decimal-constant digit

  • octal-constant:
    0

    octal-constant octal-digit

  • hexadecimal-constant:
    0xhexadecimal-digit

    0Xhexadecimal-digit

    hexadecimal-constant hexadecimal-digit

  • nonzero-digit: one of
    1 2 3 4 5 6 7 8 9

  • octal-digit: one of
    0 1 2 3 4 5 6 7

  • hexadecimal-digit: one of
    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-suffixopt

    long-suffix unsigned-suffixopt

  • unsigned-suffix: one of
    u U

  • long-suffix: one of
    l L

  • 64-bit integer-suffix:
    i64 LL ll

Pro zadání celočíselné konstanty pomocí osmičkové nebo šestnáctkové soustavy je nutné použít předponu, která označuje základ.Pro určení celočíselné konstanty daného celočíselného typu je nutné použít příponu, která označuje typ.

Pro zadání desítkové konstanty je nutné začít specifikaci nenulovou číslicí.Příklad:

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

Pro zadání osmičkové konstanty je třeba začít specifikaci s 0, následovanou posloupností číslic v rozsahu 0 až 7.Číslice 8 a 9 jsou chyby v určení osmičkové konstanty.Příklad:

int i = 0377;   // Octal constant
int j = 0397;   // Error: 9 is not an octal digit

Pro zadání šestnáctkové konstanty je nutné začít specifikaci s 0x nebo 0X (na velikosti "x" nezáleží), následované posloupností číslic v rozsahu 0 až 9 a a (nebo A) až f (nebo F).Šestnáctkové číslice a (nebo A) až f (nebo F) představují hodnoty v rozsahu 10 až 15.Příklad:

int i = 0x3fff;   // Hexadecimal constant
int j = 0X3FFF;   // Equal to i

Pro určení typu bez znaménka je nutné použít příponu u nebo U.Pro určení dlouhého typu je nutné použít příponu l nebo L.Příklad:

unsigned uVal = 328u;             // Unsigned value
long lVal = 0x7FFFFFL;            // Long value specified 
                                  //  as hex constant
unsigned long ulVal = 0776745ul;  // Unsigned long value

Pro určení 64bitového celočíselného typu je nutné použít příponu LL, ll nebo i64. Příklad:

// 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);
}

Výsledek

in f1(int)
in f1(__int64)

Viz také

Referenční dokumentace

Literály jazyka C++