p546는 해당 문제에 대한 디버깅 표인데 i가 3일 때 C가 0으로 변환이 되는데 봐도 이해를 잘 못하겠습니다. 알고리즘을 보면 C가 1로 초기화를 시키고 계속 1로 가지고 가는것처럼 보이는데 i가 3일때 0으로 된다는건 자리 올림수가 1이 아니기 때문에 c가 0으로 된다는건가요?... 0이 되는부분이 이해가 잘 안갑니다.
안녕하세요.
i가 처음에 0~5까지 변화될 때는 변환할 자료를 입력받는 과정으로 C의 값은 변화가 없습니다.
입력이 완료된 상태, 즉 i가 5일 때부터 2의 보수 변환 작업이 시작됩니다.
i가 5일 때
B2[i] = B1[i] + C, 즉 B2[5] = B1[5] + C 인데 C는 초기값으로 1을 가지므로
B2[5] = 1 + 1 이므로 B2[5]에는 2가 저장됩니다.
B2[5] = B2[5] MOD 2에 의해 B2[5]에는 0이 다시 저장됩니다.
C = B1[5] * C, 즉 C = 1 * 1 이므로 C는 1이 됩니다.
위와 같은 과정으로 C 값은 B1이 1일 때는 1이 였다가 B1이 0이 되는 경우 0으로 변환됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-07 09:30:09
안녕하세요.
i가 처음에 0~5까지 변화될 때는 변환할 자료를 입력받는 과정으로 C의 값은 변화가 없습니다.
입력이 완료된 상태, 즉 i가 5일 때부터 2의 보수 변환 작업이 시작됩니다.
i가 5일 때
B2[i] = B1[i] + C, 즉 B2[5] = B1[5] + C 인데 C는 초기값으로 1을 가지므로
B2[5] = 1 + 1 이므로 B2[5]에는 2가 저장됩니다.
B2[5] = B2[5] MOD 2에 의해 B2[5]에는 0이 다시 저장됩니다.
C = B1[5] * C, 즉 C = 1 * 1 이므로 C는 1이 됩니다.
위와 같은 과정으로 C 값은 B1이 1일 때는 1이 였다가 B1이 0이 되는 경우 0으로 변환됩니다.
오늘도 즐거운 하루 되세요.