상세 컨텐츠

본문 제목

[CodeUp] C언어 기초 100제 풀이 (1031번 ~ 1035번)

C언어

by idea8590 2026. 2. 1. 20:32

본문

반응형

1031번부터 1035번까지는 프로그래밍에서 숫자를 표현하는 방법인 진법 변환을 집중적으로 다룹니다. 우리가 흔히 쓰는 10진수 외에도 컴퓨터 내부 처리 효율을 위해 8진수와 16진수가 자주 사용됩니다. C언어에서는 복잡한 수학적 계산 없이 서식 지정자만 변경하면 간단하게 진법을 변환할 수 있습니다. 이 구간을 통해 %o와 %x 같은 서식 지정자가 메모리의 값을 어떻게 해석하고 출력하는지 익혀보세요.


1031번 : 10진 정수 1개 입력받아 8진수로 출력하기

C
 
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    printf("%o", n);
    return 0;
}

코드 상세 설명 변수 n에 10진수 정수를 입력받기 위해 scanf 내부에 %d를 사용했습니다. 입력받은 값을 8진수(octal) 형태로 보여주기 위해 printf에서 서식 지정자 %o를 사용했습니다. 컴퓨터는 내부적으로 숫자를 2진수로 저장하고 있지만, 출력할 때 %o를 만나면 이를 3비트씩 끊어서 8진수 형태로 변환하여 화면에 표시합니다.

 

실행 결과

입력 예시: 10
출력 예시: 12

 

1032번 : 10진 정수 1개 입력받아 16진수로 출력하기

C
 
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    printf("%x", n);
    return 0;
}

코드 상세 설명 10진수를 입력받아 16진수(hexadecimal)로 변환하는 문제입니다. printf 함수에서 %x를 사용하면 정수를 16진수 형태로 출력하며, 이때 알파벳 a부터 f까지는 소문자로 표시됩니다. 16진수는 2진수 4자리를 한 글자로 표현할 수 있어 메모리 주소나 컬러 코드를 표현할 때 매우 효율적입니다.

 

실행 결과

입력 예시: 255
출력 예시: ff

 

1033번 : 10진 정수 1개 입력받아 16진수 대문자로 출력하기

C
 
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    printf("%X", n);
    return 0;
}

코드 상세 설명 1032번과 동일한 논리지만 출력되는 알파벳의 대소문자 형식이 다릅니다. 서식 지정자 %x를 사용하면 소문자(a~f)로 출력되고, 대문자 %X를 사용하면 대문자(A~F)로 출력됩니다. 데이터의 값 자체가 변하는 것이 아니라, 화면에 보여주는 알파벳의 표기 방식만 달라진다는 점이 핵심입니다.

 

실행 결과

입력 예시: 255
출력 예시: FF

 

1034번 : 8진 정수 1개 입력받아 10진수로 출력하기

C
 
#include <stdio.h>

int main() {
    int n;
    scanf("%o", &n);
    printf("%d", n);
    return 0;
}

코드 상세 설명 이번에는 반대로 8진수를 입력받아 10진수로 변환하는 과정입니다. 입력받는 함수 scanf에서 %o를 사용하면, 사용자가 입력한 숫자를 8진수로 인식하여 메모리에 저장합니다. 그 후 printf에서 %d를 사용하면 저장된 값을 다시 우리가 익숙한 10진수 형태로 변환하여 출력하게 됩니다.

 

실행 결과

입력 예시: 13
출력 예시: 11

 

1035번 : 16진 정수 1개 입력받아 8진수로 출력하기

C
#include <stdio.h>

int main() {
    int n;
    scanf("%x", &n);
    printf("%o", n);
    return 0;
}

코드 상세 설명 16진수로 입력을 받아서 8진수로 출력하는 응용 문제입니다. scanf에서 %x를 사용하여 입력된 값을 16진수로 해석해 변수 n에 저장합니다. 이후 printf에서 %o를 사용하여 n에 저장된 값을 8진수 형식으로 출력하면, 별도의 수학적 변환 공식 없이도 진법 변환이 완료됩니다.

 

실행 결과

 
입력 예시: f
출력 예시: 17

핵심 요약

  1. 이번 문제들의 핵심은 데이터의 실제 값은 변하지 않지만 입출력하는 형태(Format)만 바뀐다는 점을 이해하는 것입니다.
  2. %d는 10진수, %o는 8진수, %x는 16진수를 의미하며 이는 입력과 출력 함수 양쪽에서 모두 사용할 수 있습니다.
  3. 특히 16진수를 다룰 때 소문자 출력은 %x, 대문자 출력은 %X로 서식 지정자를 구분해서 사용해야 한다는 점을 기억해야 합니다.
  4. 컴퓨터 내부적으로는 모두 이진수로 저장되지만, 서식 지정자를 통해 우리가 원하는 진법으로 해석하여 보여주는 원리입니다.
  5. 진법 변환은 임베디드 시스템이나 메모리 제어 분야에서 필수적이므로 각 서식의 특징을 확실히 암기하는 것이 좋습니다.
반응형

관련글 더보기