책 내용 질문하기
8진수 10진수 입력
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
53
조회수
73
작성일
2017-06-08
작성자
탈퇴*원
첨부파일
본교재 53쪽과 55쪽 예제를 복습하다 이해가 안 되는 부분이 있어서 질문 올려요. 먼저 53쪽 scanf("%d %o", &i, &j); 여기에서는 20 입력시 j가 '8진수 20에서 10진수 16'으로 바뀌는데 55쪽 printf("10진수i = %d₩the 8진수i = %o₩n", i, i); 여기에서는 왜 '10진수 250을 8진수 372'로 바꿔서 입력하나여 scanf와 printf의 차이인가여
답변
2017-06-09 10:02:55

안녕하세요.

Scanf나 Printf 에서 사용되는 서식 문자열은 대응되는 변수의 값을 출력할 때 출력 서식을 지정하는 옵션입니다.

scanf("%d %o", &i, &j);

에서 %d는 이에 대응되는 변수인 i를 입력받되 %d이므로 입력된 값을 10진수 정수로 입력 받겠다는 의미입니다.

%o는 이에 대응되는 변수인 j를 입력받되 %o이므로 입력된 값을 8진수 정수로 입력 받겠다는 의미입니다.

우리가 보통 입력할 때는 10진수로 입력하므로 i와 j에는 모두 10진수로 입력이 수행됩니다. i에 대응되는 서식 문자열은 %d이므로 입력된 10진수 값이 정수형태로 저장되자만 j에 대응되는 서식 문자열은 %o이므로 입력된 10진수가 8진수로 자동 변환되어 저장됩니다.

반대로 출력에서는 변수의 i가 10진수 정수형 변수이므로 10진수 정수의 값이 저장되어 있는데, 이 값을 출력할 때 지정된 서식에 맞게

%d는 정수 그대로, %o는 8진수로 출력하는 것입니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-06-09 10:02:55

    안녕하세요.

    Scanf나 Printf 에서 사용되는 서식 문자열은 대응되는 변수의 값을 출력할 때 출력 서식을 지정하는 옵션입니다.

    scanf("%d %o", &i, &j);

    에서 %d는 이에 대응되는 변수인 i를 입력받되 %d이므로 입력된 값을 10진수 정수로 입력 받겠다는 의미입니다.

    %o는 이에 대응되는 변수인 j를 입력받되 %o이므로 입력된 값을 8진수 정수로 입력 받겠다는 의미입니다.

    우리가 보통 입력할 때는 10진수로 입력하므로 i와 j에는 모두 10진수로 입력이 수행됩니다. i에 대응되는 서식 문자열은 %d이므로 입력된 10진수 값이 정수형태로 저장되자만 j에 대응되는 서식 문자열은 %o이므로 입력된 10진수가 8진수로 자동 변환되어 저장됩니다.

    반대로 출력에서는 변수의 i가 10진수 정수형 변수이므로 10진수 정수의 값이 저장되어 있는데, 이 값을 출력할 때 지정된 서식에 맞게

    %d는 정수 그대로, %o는 8진수로 출력하는 것입니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.