책 내용 질문하기
오버플로우(over flow)검출 질문 질문드립니다.
도서
2017 시나공 정보처리기사 필기
페이지
조회수
1322
작성일
2017-03-29
작성자
첨부파일

안녕하세요. 문제 1개 질문드립니다.

<2-33 쪽 예상문제은행 25번>

Q. 산술 연산에서 overflow가 발생했을 경우 이것을 검출하는데 사용하는 논리게이트는?

A. Exclusice-or

저는 이 문제에서 오버플로우가 발생했을때 excusive-or로 어떻게 검출하는지 이해가 되지를 않습니다.

오버플로우가 발생하면 결국 자리넘김을 행하지 않습니까? 예를들어 이진법10 + 11 은 오버플로우이 발생되어서 101입니다.

이거와 exclusice-or게이트와 어떤 상관이 있는가요?

해설에서는

"산술연산에서 오버플로우가 발생할 때는 부호비트가 변경될 때이다. 따라서 오버플로우를 검철하려면 연산후 부호피트가 제대로 유지되었는지 비교해보면 알 수있다.~"

즉, 부호와 관련되어 검증을 해야하기 때문에 exclusice-or을 사용하라고 나와있습니다.

부호 변경이 없을 때에도 오버플로우는 발생하지 않습니까? 해설이 잘 이해가 되지 않습니다.

답변해주시면 감사하겠습니다.

답변
2017-03-30 11:42:36

안녕하세요.

산술연산에서 연산될 두 비트의 최상위 비트, 즉 가장 왼쪽의 비트는 부호비트로 사용됩니다.

최상위 비트에서 자리넘김이 발생한 경우 오버플로가 발생합니다.

0 11111111 +127 에서 자리올림이 발생하여 1 0000000 이 되면 부호가 0에서 1로 변경된 형태가 됩니다.

1 11111111 -127 에서 자리올림이 발생하여 0 0000000 이 되면 부호가 1에서 0으로 변경된 형태가 됩니다.

이와 같이 부호가 변경되는 경우 자리올림이 발생한 것으로 판단할 수 있으며,

이는

이전 부호와 변경 후 부호를 비교하여 같으면(즉 XOR한 결과가 0이면) 오버플로우 발생 X

이전 부호와 변경 후 부호를 비교하여 다으면(즉 XOR한 결과가 1이면) 오버플로우 발생 O

으로 판단할 수 있습니다.

문제에서 요구하는 것은 산술연산에서 오버플로우가 발생했을 때 물론 발생하지 않는 경우도 있지만 발생한 경우에 대해 이를 검출하는 용도로 사용할 수 있는 게이트가 무엇인지를 묻는 것이므로 Exclusive-OR가 답이됩니다.

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

  • *
    2017-03-30 11:42:36

    안녕하세요.

    산술연산에서 연산될 두 비트의 최상위 비트, 즉 가장 왼쪽의 비트는 부호비트로 사용됩니다.

    최상위 비트에서 자리넘김이 발생한 경우 오버플로가 발생합니다.

    0 11111111 +127 에서 자리올림이 발생하여 1 0000000 이 되면 부호가 0에서 1로 변경된 형태가 됩니다.

    1 11111111 -127 에서 자리올림이 발생하여 0 0000000 이 되면 부호가 1에서 0으로 변경된 형태가 됩니다.

    이와 같이 부호가 변경되는 경우 자리올림이 발생한 것으로 판단할 수 있으며,

    이는

    이전 부호와 변경 후 부호를 비교하여 같으면(즉 XOR한 결과가 0이면) 오버플로우 발생 X

    이전 부호와 변경 후 부호를 비교하여 다으면(즉 XOR한 결과가 1이면) 오버플로우 발생 O

    으로 판단할 수 있습니다.

    문제에서 요구하는 것은 산술연산에서 오버플로우가 발생했을 때 물론 발생하지 않는 경우도 있지만 발생한 경우에 대해 이를 검출하는 용도로 사용할 수 있는 게이트가 무엇인지를 묻는 것이므로 Exclusive-OR가 답이됩니다.

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

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