책 내용 질문하기
정보처리기사 2012 질문입니다.
도서
[2012] 정보처리기사 실기
페이지
114
조회수
218
작성일
2012-07-01
작성자
첨부파일

p가 2부터 시작 하기 때문에
배열 s[1]은 10진수 변화에 이용 하지 않는데
왜 음수인 경우 128에서 10진수 변환 값을
빼는지 잘모르겠습니다.

답변
2012-07-02 09:44:45

안녕하세요.

8비트의 값 중 가장 첫번째 비트가 부호비트라고 제시되었습니다.

1은 음수, 0은 양수

우선 주어진 값을 10지수로 변환한 후 첫번째 비트의 값을 확인합니다.

0이면 양수이므로 그냥 출력하고

1이면 음수인 2의 보수로 표현된 것이므로(문제에 제시된 조건)

2의 보수의 값을 처리하는 과정을 진행합니다.

2의 보수를 처리하는 과정은 공식처럼 생각하시면 됩니다.
2의 보수로 표현된 값을 10진수로 변환하려면 2의 보수를 구하는 역의 과정 즉 다시 2의 보수를 취하면 되는데 .. 이 과정이 주어진 비트수보다 1비트 큰 자리를 1로 한 값(즉 7비트 인 경우는 10000000 = 128)에서 빼는 값과 동일합니다.

예를 들어 1010이 2의 보수로 표현된 값이라면 10진수로 변환하기 위해 다시 2의 보수로 취하면 0110이 되어 10진수로 6이라는 값이 됩니다.

마찬가지로 1010 자체를 10진수로 변환한 값 10을 5자리의 값(10000)인 16에서 10을 뺀 6과 동일하게 산출됩니다.

이 과정이 이해하기 어려우시면 2의 보수로 표현된 값을 다시 2의 보수로 구할 때는 한자리 큰 자리 값에서 뺀다고 기억하세요.

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

"
  • *
    2012-07-02 09:44:45

    안녕하세요.

    8비트의 값 중 가장 첫번째 비트가 부호비트라고 제시되었습니다.

    1은 음수, 0은 양수

    우선 주어진 값을 10지수로 변환한 후 첫번째 비트의 값을 확인합니다.

    0이면 양수이므로 그냥 출력하고

    1이면 음수인 2의 보수로 표현된 것이므로(문제에 제시된 조건)

    2의 보수의 값을 처리하는 과정을 진행합니다.

    2의 보수를 처리하는 과정은 공식처럼 생각하시면 됩니다.
    2의 보수로 표현된 값을 10진수로 변환하려면 2의 보수를 구하는 역의 과정 즉 다시 2의 보수를 취하면 되는데 .. 이 과정이 주어진 비트수보다 1비트 큰 자리를 1로 한 값(즉 7비트 인 경우는 10000000 = 128)에서 빼는 값과 동일합니다.

    예를 들어 1010이 2의 보수로 표현된 값이라면 10진수로 변환하기 위해 다시 2의 보수로 취하면 0110이 되어 10진수로 6이라는 값이 됩니다.

    마찬가지로 1010 자체를 10진수로 변환한 값 10을 5자리의 값(10000)인 16에서 10을 뺀 6과 동일하게 산출됩니다.

    이 과정이 이해하기 어려우시면 2의 보수로 표현된 값을 다시 2의 보수로 구할 때는 한자리 큰 자리 값에서 뺀다고 기억하세요.

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

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