책 내용 질문하기
printf()함수
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
55
조회수
71
작성일
2017-03-29
작성자
탈퇴*원
첨부파일

추가해설 6번

250(8)->372(10)으로 바꾼다는 말인가요?

(2*64)+(5*8)+(0*1)

372가 어떻게 나오는지 모르겠어요ㅜㅠ

2의 보수도 같이 질문할게용!!

58쪽 5번 해설에서

1111 1000에 대한 2의 보수를 구한다고 했는데

2의보수는 맨마지막에 +1을 더해주는거아닌가용?

1111 1000

+1

----------

답변
2017-03-30 09:56:10

안녕하세요.

1)

처음에 i에 250을 저장했습니다. i가 정수형이므로 i에는 10진수 250이 저장된 것입니다.

즉 250은 10진수 입니다.

i를 출력할 때 %d로 출력하면 10진수값 250이 그대로 출력됩니다.

하지만 i를 출력할 때 %o로 출력하면 8진수로 변환되어 출력됩니다.

10진수 250을 8진수로 변환하면 8로 나누면서 나머지를 거꾸로 작성하면 됩니다.

250 / 8 ... 몫은 31, 나머지는 2

31 / 8 .... 몫은 3, 나머지는 7

3 / 8 ... 나눠질 피제수가 나눌 제수보다 작으므로 몫이 그대로 나머지가 됩니다. .... 몫은 0, 나머지 3

이제 나머지를 거꾸로 작성하면 372가 됩니다.

2)

1111 1000 에 대한 2의 보수를 구하려면 먼저 2진수를 1의 보수로 구한 뒤 그 값에 +1을 하는 것입니다.

그러므로

1111 1000 -> 1의 보수 -> 0000 0111 -> 2의 보수 -> 0000 1000

이 됩니다.

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

  • *
    2017-03-30 09:56:10

    안녕하세요.

    1)

    처음에 i에 250을 저장했습니다. i가 정수형이므로 i에는 10진수 250이 저장된 것입니다.

    즉 250은 10진수 입니다.

    i를 출력할 때 %d로 출력하면 10진수값 250이 그대로 출력됩니다.

    하지만 i를 출력할 때 %o로 출력하면 8진수로 변환되어 출력됩니다.

    10진수 250을 8진수로 변환하면 8로 나누면서 나머지를 거꾸로 작성하면 됩니다.

    250 / 8 ... 몫은 31, 나머지는 2

    31 / 8 .... 몫은 3, 나머지는 7

    3 / 8 ... 나눠질 피제수가 나눌 제수보다 작으므로 몫이 그대로 나머지가 됩니다. .... 몫은 0, 나머지 3

    이제 나머지를 거꾸로 작성하면 372가 됩니다.

    2)

    1111 1000 에 대한 2의 보수를 구하려면 먼저 2진수를 1의 보수로 구한 뒤 그 값에 +1을 하는 것입니다.

    그러므로

    1111 1000 -> 1의 보수 -> 0000 0111 -> 2의 보수 -> 0000 1000

    이 됩니다.

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

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