C/C++에서는 실제 숫자 앞에 0을 붙이는 것만으로 8진수(octal) 리터럴을 표현할 수 있습니다. 예를 들어, 8진수 25를 나타내고 싶다면 025처럼 작성하면 됩니다.
8진수의 기본 개념
8진수는 각 자릿수가 8의 거듭제곱을 나타내는 진법입니다. 따라서 8진수 025는 10진수로 2×8 + 5 = 21이 되고, 8진수 063은 6×8 + 3 = 51이 됩니다.
예제 코드
#include <stdio.h>
int main() {
int a = 025;
int b = 063;
printf("Decimal of 25(Octal) is %d\n", a);
printf("Decimal of 63(Octal) is %d\n", b);
}실행 결과
Decimal of 25(Octal) is 21 Decimal of 63(Octal) is 51
주의할 점
숫자 앞에 0을 붙이면 의도하지 않게 8진수로 해석될 수 있으므로 주의해야 합니다. 예를 들어 010은 10진수 10이 아니라 10진수 8로 처리됩니다. 또한 8진수에는 0부터 7까지만 사용할 수 있으며, 8이나 9를 포함하면 컴파일 오류가 발생합니다.