다음을 통해 공유


C++ 정수 상수

정수 상수는 소수 부분 또는 지수가 없는 상수 데이터 요소입니다. 항상 숫자로 시작합니다. 정수 상수는 10 진수, 8 진수 또는 16 진수 형식을 지정할 수 있습니다. 부호가 있는 또는 부호가 없는 형식 및 long 또는 short 형식을 지정할 수 있습니다.

문법

  • 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:
    0x 16진수

    0X 16진수

    hexadecimal-constant hexadecimal-digit

  • nonzero-digit: 다음 중 하나
    1 2 3 4 5 6 7 8 9

  • octal-digit: 다음 중 하나
    0 1 2 3 4 5 6 7

  • hexadecimal-digit: 다음 중 하나
    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: 다음 중 하나
    u U

  • long-suffix: 다음 중 하나
    l L

  • 64-bit integer-suffix:
    i64 LL ll

8 진수 또는 16 진수 표기법을 사용하는 정수 상수를 지정하려면 기본을 나타내는 접두사를 사용합니다. 해당 정수 계열 형식이 정수인 상수를 지정하려면 유형을 나타내는 접미사를 사용합니다.

10 진수 상수를 지정하려면, 0이 아닌 숫자를 사용하여 설정을 시작합니다. 예를 들면 다음과 같습니다.

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

8 진수는 상수를 지정하려면 범위가 0부터 7까지의 숫자 뒤에 0을 사용하여 설정을 시작합니다. 숫자 8과 9는 8 진수 상수를 지정하는 오류입니다. 예를 들면 다음과 같습니다.

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

16 진수 상수를 지정하려면, 특성화를 0x 또는 0X 를 ("x"의 경우 중요 하지 않습니다), 숫자 범위에서 0 에서 9 및 a (또는 A)에서 f (또는 F)의 범위의 시퀀스에 따라 시작합니다. 16 진수 a 는 (또는 A) 에서 f (또는 F) 10에서 15 사이의 값을 나타냅니다. 예를 들면 다음과 같습니다.

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

부호 없는 데이터 형식을 지정하려면, u 또는 U 접미사를 사용합니다. long 형식을 지정하려면 l 또는 L 접미사를 사용합니다. 예를 들면 다음과 같습니다.

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

64 비트 정수 계열 형식을 지정,하려면 LL, ll 또는 i64 접미사를 사용합니다. 예를 들면 다음과 같습니다.

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

참고 항목

참조

C++ 리터럴