C · 연산자·연습 문제

16진수·8진수 출력

문제 설명PROBLEM

16진수·8진수 출력

문제

한 unsigned 값은 소문자 16진수, 다른 값은 8진수로 문자열에 담으세요.

구현할 함수

void format_hex_octal(unsigned int hex_value, unsigned int octal_value, char output[], size_t output_size)

입력

unsigned 정수 hex_value와 octal_value가 주어집니다.

입력 파싱과 결과 출력은 숨겨진 I/O 어댑터가 자동으로 처리합니다. 에디터에는 요구된 함수 또는 메서드 구현만 작성하세요.

출력

16진수 표현과 8진수 표현을 공백으로 구분해 출력합니다.

구현 조건

  • 계산 로직은 반드시 format_hex_octal 함수 안에 구현하세요.
  • snprintf에서 %x와 %o를 사용하세요.

공개 테스트

아래 테스트를 각각 독립된 프로세스로 실행합니다. 입력과 기대 출력은 실제 채점 순서와 같습니다.

#이름InputExpected output
1대표255 8ff 10
2같은 값16 1610 20
300 00 0
개념 노트와 실수 포인트

연산자

  • 정수 나눗셈 /: 정수끼리면 몫만 남고 소수점은 버림. 7/2 == 3. 실수가 필요하면 한쪽을 실수로 → 7/2.0.
  • 나머지 %: 정수 전용.
  • 증감 a++(후위: 쓰고 증가) / ++a(전위: 증가 후 사용).
  • ⚠️ 한 식에서 같은 변수를 두 번 증감(f(a++, ++a))하면 결과가 정의되지 않음(컴파일러마다 다름). 문장을 나눠 추적하세요.
  • 우선순위: * / %+ - → 비교 → 비트(& ^ |) → && ||. 헷갈리면 괄호!
  • 비트: &AND |OR ^XOR ~NOT, <<n=×2ⁿ, >>n=÷2ⁿ.
  • 형변환 (int)3.9 == 3 (반올림 아님, 버림).