책 내용 질문하기
2진수 값 10진수 변환 출력 알고리즘 문의
도서
2017 시나공 정보처리기능사 실기
페이지
102
조회수
172
작성일
2016-11-17
작성자
탈퇴*원
첨부파일

붉은 원 부분이 이해가 안되네요.

S[1]=1일 때 저 과정을 거치고 음수이니 -1을 곱하는 건 알겠는데 왜 128에서 빼야하는지는 모르겠어요.

만약 S[8]=10001101이면 어떻게 되는지 이 예를 들어서 자세하게 설명 해 주시길 부탁드립니다.

답변
2016-11-18 10:15:10

안녕하세요.

최상위 비트 값이 1인 경우 음수이고 음수인 경우 2의 보수로 표현되었다는 조건에 따라

S(8)에 10001101이 기억되어 있다면 이는 십진수로 -13이라는 의미입니다.

맨 앞은 부호 음수(-)를 의미하고 실제값 1101이 13인 것이죠.

하지만 처리 과정을 통해 10001101이 십진수로 변환하면 DEC에는 141이 저장됩니다.

그래서 이 값을 우리가 알고 있는 13이라는 값으로 변환하기 위한 과정이 필요한데,

그 방법이 표현된 비트 수의 가장 최상위를 1로 만든 값으로 빼주는 것이죠.

즉 8비트 이므로 최상위 비트를 1로 만든 10000000(128)을 빼주는 것입니다.

즉 처리되어 DEC에 기억된 값이 10001101이라면 141입니다. 여기서 10000000인 128을 빼주면

141-128 = 13이 됩니다.

그런 다음 DEC에 (-1)을 곱하여 -13으로 출력을 하는 것이죠.

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

  • *
    2016-11-18 10:15:10

    안녕하세요.

    최상위 비트 값이 1인 경우 음수이고 음수인 경우 2의 보수로 표현되었다는 조건에 따라

    S(8)에 10001101이 기억되어 있다면 이는 십진수로 -13이라는 의미입니다.

    맨 앞은 부호 음수(-)를 의미하고 실제값 1101이 13인 것이죠.

    하지만 처리 과정을 통해 10001101이 십진수로 변환하면 DEC에는 141이 저장됩니다.

    그래서 이 값을 우리가 알고 있는 13이라는 값으로 변환하기 위한 과정이 필요한데,

    그 방법이 표현된 비트 수의 가장 최상위를 1로 만든 값으로 빼주는 것이죠.

    즉 8비트 이므로 최상위 비트를 1로 만든 10000000(128)을 빼주는 것입니다.

    즉 처리되어 DEC에 기억된 값이 10001101이라면 141입니다. 여기서 10000000인 128을 빼주면

    141-128 = 13이 됩니다.

    그런 다음 DEC에 (-1)을 곱하여 -13으로 출력을 하는 것이죠.

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

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