책 내용 질문하기
2의 보수 플로차트(p.92) 관련 질문입니다.
도서
[2013] 정보처리기능사 실기
페이지
92
조회수
189
작성일
2013-04-18
작성자
첨부파일

p.92의 플로차트 첫번째 반복문에서 정답이 i=5,1,-1인데

예를 들어, A(5)=10000과 같이 i가 1이 될 때까지 반복되는 경우에는,

두번째 반복문에서는 J=i-1(=0),1,-1이 되는데 이 때의 반복문의 처리방법은 무엇입니까?

추가적으로 0인 경우(A(5)=00000), 2의 보수는 무엇입니까?

제 생각으로는 1의 보수는 11111이고 여기에 1을 더하여 100000인 것으로 아는데

그렇다면 p.92의 플로차트로는 배열이 5개까지만 선언되어 있는데 어떻게 출력되는 거입니까?

00000으로 출력되는 거입니까? 아니면 현재의 플로차트로는 구할 수 없는 것입니까?

답변
2013-04-22 09:55:41

안녕하세요.

이 알고리즘은 2의 보수를 빠르게 구하는 방법으로 변환할 이진수의 값 중에서 첫 번째 1이 나올때까지는 이진수 값을 그대로 저장하고 1이 나온 이후 부터는 이진수 값의 보수를 저장하니다.

첫번째 반복문에서는 첫번째 1이 나올때까지 이진수를 2의 보수 배열에 그대로 저장합니다. 즉 3번 동그라미가 NO일 될 때 B(i) = A(i)가 되는 것이죠.

두번째 반복문에서는 첫번째 1이 나온 경우로 이후의 값은 1의 보수로 변환하야 2의 보수 배열에 저장합니다.

만일 10000이라면 5부터 1까지 반복문을 수행하여 i가 1일 때 첫번째 1이 찾아진 경우입니다.

이후 두 번째 반복문은 J가 i-1부터 1까지 -1씩 증가하면서 반복하는데, i가 1이므로 J의 초기값은 0이 되어 반복문을 수행하지 않고 바로 빠져나오게 됩니다.

참고로 2의 보수에서 0은 하나만 있습니다. 모든 비트가 0으로 채워진 0 하나만 존재합니다.

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

"
  • *
    2013-04-22 09:55:41

    안녕하세요.

    이 알고리즘은 2의 보수를 빠르게 구하는 방법으로 변환할 이진수의 값 중에서 첫 번째 1이 나올때까지는 이진수 값을 그대로 저장하고 1이 나온 이후 부터는 이진수 값의 보수를 저장하니다.

    첫번째 반복문에서는 첫번째 1이 나올때까지 이진수를 2의 보수 배열에 그대로 저장합니다. 즉 3번 동그라미가 NO일 될 때 B(i) = A(i)가 되는 것이죠.

    두번째 반복문에서는 첫번째 1이 나온 경우로 이후의 값은 1의 보수로 변환하야 2의 보수 배열에 저장합니다.

    만일 10000이라면 5부터 1까지 반복문을 수행하여 i가 1일 때 첫번째 1이 찾아진 경우입니다.

    이후 두 번째 반복문은 J가 i-1부터 1까지 -1씩 증가하면서 반복하는데, i가 1이므로 J의 초기값은 0이 되어 반복문을 수행하지 않고 바로 빠져나오게 됩니다.

    참고로 2의 보수에서 0은 하나만 있습니다. 모든 비트가 0으로 채워진 0 하나만 존재합니다.

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

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