동그라미 3번에서 D=DXB
동그라미 4번에서 A(E+1)
이것이 왜 이렇게 되는지 잘 모르겠습니다
쉽고 자세한 설명 부탁드릴께요^^
안녕하세요.
D=D*B는 앞의 알고리즘의 이해에서 설명했듯이 가장 가까운 누승을 찾기 위한 과정입니다.
B가 2이고 C가 23이 입력되었다면
D에 2진수인 2, 즉 B의 값을 계속 곱합니다. C보다 커질때까지
그럼 D는 2 4 6 8 16 32 로 변하다가 32일 때 6번 동그라미로 이동합니다.
C보다 커질때까지 구한 것이므로 크지 않은 가까운 누승을 찾기 위해 7번 동그라미 과정을 통해 첫번째 누승인 16을 산출합니다.
그 이후 16 8 4 2 1의 누승을 이용하면서 진법 변환을 수행하는 것이죠.
A(E+1)은
A 배열에 저장된 값은 A(1) 즉 A의 첫번째 배열에 0부터 저장되었기 때문입니다.
즉 사용할 배열의 값의 자리수와 실제 저장된 값과 차이가 1이므로
A 배열에 있는 5란 값을 출력하려면 A(6)을 지정해야 하니 E에 1을 더한 E+1로 위치를 지정하는 것입니다.
오늘도 즐거운 하루 되세요.
"-
*2011-10-06 09:22:19
안녕하세요.
D=D*B는 앞의 알고리즘의 이해에서 설명했듯이 가장 가까운 누승을 찾기 위한 과정입니다.
B가 2이고 C가 23이 입력되었다면
D에 2진수인 2, 즉 B의 값을 계속 곱합니다. C보다 커질때까지
그럼 D는 2 4 6 8 16 32 로 변하다가 32일 때 6번 동그라미로 이동합니다.
C보다 커질때까지 구한 것이므로 크지 않은 가까운 누승을 찾기 위해 7번 동그라미 과정을 통해 첫번째 누승인 16을 산출합니다.
그 이후 16 8 4 2 1의 누승을 이용하면서 진법 변환을 수행하는 것이죠.
A(E+1)은
A 배열에 저장된 값은 A(1) 즉 A의 첫번째 배열에 0부터 저장되었기 때문입니다.
즉 사용할 배열의 값의 자리수와 실제 저장된 값과 차이가 1이므로
A 배열에 있는 5란 값을 출력하려면 A(6)을 지정해야 하니 E에 1을 더한 E+1로 위치를 지정하는 것입니다.
오늘도 즐거운 하루 되세요.
"