책 내용 질문하기
교재 1권, 58페이지 추가해설 5번
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
58
조회수
262
작성일
2020-04-14
작성자
탈퇴*원
첨부파일
비트 not을 하면 1111 1111 1111 1111 1111 1111 1111 1000 이 되는것은 이해가 갑니다. 질문1. 그런데 이 상태로 끝내는게 아닌 2의보수를 왜 구하는거죠? 그냥 -7이 되는게 아닌가요? 질문2. 2의보수를 구한다 해서 0000 0000 . . . 0000 1000 이 되는건 알겠는데 원래 음수였다는 이유가 뭐죠?
답변
2020-04-14 19:41:48

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

 

[1]

비트 not만 한 수를 10진수로 바꾸게되면 (2^128)-7이라는 엄청난 수가 나옵니다.

 

[2]

not을 하는 경우 음수, 양수를 판별하는 부호비트(맨 앞의 비트)가 변환되어 버리기 때문에 컴퓨터는 해당 비트들을 '음수'라도 판별합니다. 

 

컴퓨터에서 모든 음수표현은 2의 보수로 저장되기 때문에, 이를 정상적인 수로 바꾸기 위해서는 다시 2의 보수를 수행하여 일반 2진수로 변환하는 과정을 거쳐줘야 합니다.

 

(사용자가 보는) 음수 -> 2의 보수화 -> 저장(PC)

(2의 보수화되어 PC에 저장된) 음수 -> 2의 보수화 -> 화면 출력

 

행복한 하루되세요 :)

  • 관리자
    2020-04-14 19:41:48

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

     

    [1]

    비트 not만 한 수를 10진수로 바꾸게되면 (2^128)-7이라는 엄청난 수가 나옵니다.

     

    [2]

    not을 하는 경우 음수, 양수를 판별하는 부호비트(맨 앞의 비트)가 변환되어 버리기 때문에 컴퓨터는 해당 비트들을 '음수'라도 판별합니다. 

     

    컴퓨터에서 모든 음수표현은 2의 보수로 저장되기 때문에, 이를 정상적인 수로 바꾸기 위해서는 다시 2의 보수를 수행하여 일반 2진수로 변환하는 과정을 거쳐줘야 합니다.

     

    (사용자가 보는) 음수 -> 2의 보수화 -> 저장(PC)

    (2의 보수화되어 PC에 저장된) 음수 -> 2의 보수화 -> 화면 출력

     

    행복한 하루되세요 :)

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