책 내용 질문하기
130p 44번문제
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
130
조회수
119
작성일
2019-05-08
작성자
탈퇴*원
첨부파일

32767을 이진수로 바꾸면 0111 1111 1111 1111이면 2의보수하면 1을 더해서 1000 0000 0000 0000 이 나오는거까진 알겠어요

 

그런데 왜 이진수로 바꾸고 2의보수를 해야하나요?     <-----------------첫번째 질문

 

 

---------------------------------------------------------------------------------------

그리고 음수를 알려면 오른쪽에서 첫번째 1이 나올때까지 그대로 쓰고 반전시키면 된다는데

 

값이 만약 0111 1111 1111 1010 이면 값이 어떻게 되나요? (음수의 2의보수로)

 

1000 0000 0000 0100 이 답이 맞나요?        <-------------------------두번째 질문 

답변
2019-05-09 10:46:29

안녕하세요 길벗수험서 운영팀입니다.

 

[1]

이전에 답변드린 것과 동일합니다.

프로그래밍 언어에서 숫자처리를 할 때 맨 앞 비트는 부호비트 이므로 양수면 0, 음수면 1로 표시됩니다.

이 값이 변화되어 음수로 인식하게 된 것입니다.

여기서 다시 음수는 컴퓨터에서 2의 보수로 표현된 것으로 인식합니다.

실제 값을 구하기 위해서는 다시 2의 보수화를 수행하여 원래 값을 찾아낸 후 음수(-) 표시를 해야 정상적인 값이 구해지죠.

 

[2]

아 이전에 설명드린 것과 다른 2의 보수화 방법입니다.

'오른쪽에서 첫번째 1이 나올때까지 그대로 쓴다'는 것은 그 첫번째 1까지 그대로 쓰라는 의미입니다.

 

즉, 오른쪽의 10을 그대로 쓰고 나머지를 반전시켜야 하죠.

1000 0000 0000 0110 이 정답입니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-09 10:46:29

    안녕하세요 길벗수험서 운영팀입니다.

     

    [1]

    이전에 답변드린 것과 동일합니다.

    프로그래밍 언어에서 숫자처리를 할 때 맨 앞 비트는 부호비트 이므로 양수면 0, 음수면 1로 표시됩니다.

    이 값이 변화되어 음수로 인식하게 된 것입니다.

    여기서 다시 음수는 컴퓨터에서 2의 보수로 표현된 것으로 인식합니다.

    실제 값을 구하기 위해서는 다시 2의 보수화를 수행하여 원래 값을 찾아낸 후 음수(-) 표시를 해야 정상적인 값이 구해지죠.

     

    [2]

    아 이전에 설명드린 것과 다른 2의 보수화 방법입니다.

    '오른쪽에서 첫번째 1이 나올때까지 그대로 쓴다'는 것은 그 첫번째 1까지 그대로 쓰라는 의미입니다.

     

    즉, 오른쪽의 10을 그대로 쓰고 나머지를 반전시켜야 하죠.

    1000 0000 0000 0110 이 정답입니다.

     

    행복한 하루되세요 :)

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