다음을 통해 공유


C 정수 상수

정수 상수는 정수 값을 나타내는 10진수(base 10), 8진수(base 8) 또는 16진수(base 16)입니다. 정수 상수는 변경할 수 없는 정수 값을 나타냅니다.

문법

integer-constant:
decimal-constant integer-suffix 선택
octal-constant integer-suffix 선택
hexadecimal-constant integer-suffix 선택

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: 다음 중 하나
0x 0X

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 long-suffix 선택
unsigned-suffix long-long-suffix
unsigned-suffix 64-bit-integer-suffix
long-suffix unsigned-suffix 선택
long-long-suffix unsigned-suffix 선택
64-bit-integer-suffix

unsigned-suffix: 다음 중 하나
u U

long-suffix: 다음 중 하나
l L

long-long-suffix: 다음 중 하나
ll LL

64-bit-integer-suffix: 다음 중 하나
i64 I64

i64 접미사 및 I64 접미사는 Microsoft 전용입니다.

정수 상수는 빼기 기호(-)가 앞에 오는 경우가 아니면 양수입니다. 빼기 기호는 단항 산술 부정 연산자로 해석됩니다. (이 연산자에 대한 자세한 내용은 단항 산술 연산자를 참조하세요.)

정수 상수가 16진수로 0x 시작하거나 0X16진수로 시작하는 경우 숫자 0로 시작하면 8진수입니다. 그렇지 않으면 10진수로 간주됩니다.

다음 정수 상수는 동일합니다.

28
0x1C   /* = Hexadecimal representation for decimal 28 */
034    /* = Octal representation for decimal 28 */

공백 문자는 정수 상수의 숫자를 구분할 수 없습니다. 다음 예제에서는 유효한 10진수, 8진수 및 16진수 상수를 보여 줍니다.

    /* 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;

참고하십시오

C 상수