Decimal (밑 10)
이것은 여러분이 알고 있는 보통 수학이다. 다른 접두어 없는 상수는 십진수 형으로 가정한다.
예제 코드:
n = 101; // 101 십진수 ((1 * 10^2) + (0 * 10^1) + 1)
Binary (밑 2)
예제 코드:
n = B101; // decimal 5와 같음 ((1 * 2^2) + (0 * 2^1) + 1)
바이너리 포매터는 0(B0)과 255(B11111111) 사이의 바이트(8비트)에서만 동작한다.
입력을 바이너리 포맷으로 하는 게 편하면 아래와 같은 2단계를 할 수 있다:
myInt = (B11001100 * 256) + B10101010; // B11001100 is the high byte`
Octal (밑 8)
0에서 7까지의 문자만 타당. 접두사 "0"(영)은 8진수를 가리킨다.
예제 코드:
n = 0101; // 십진수 65 ((1 * 8^2) + (0 * 8^1) + 1)
(의도치 않게) 상수 앞에 영을 포함하여 컴파일러가 의도치 않게 상수를 8진수로 해석하여 찾기 어려운 버그를 만들어 낼 수 있다.
Hexadecimal (밑 16)
타당한 문자는 0에서 9까지 그리고 글자 A에서 F까지; A 는 값 10, B 는 11, F까지, 그건 15. 접두사 "0x"는 16진수를 가리킨다. A-F 는 대문자 또는 소문자 (a-f)도 됨을 주의하시오.
예제 코드:
n = 0x101; // 십진수 257과 같음 ((1 * 16^2) + (0 * 16^1) + 1)
주의와 경고
기본 값으로, 정수 상수는 값의 제한과 함께 int로 취급된다. 정수 상수를 다른 자료형으로 상술하려면, 다음을 따르시오:
-
'u' 또는 'U' 는 상수를 부호없는 자료형으로 강제 변환. 예: 33u
-
'l' 또는 'L' 상수를 long 자료형으로 강제 변환. 예: 100000L
-
'ul' 또는 'UL' 상수를 long 상수로 강제 변환. 예: 32767ul