문제의 플로차트는 s(8)을 배열로 시작하게 되어있습니다.
그런데 제가 가상으로 한번 해보았는데요.
2 |_127
2 |_ 63 - - - - 1
2 |_ 31 - - - - 1
2 |_ 15 - - - - 1
2 |_ 7 - - - - 1
2 |_ 3 - - - - - 1
2 |_ 1 - - - - - 1
2|_ 0 - - - - - 1
위와 같은 원리에 의해서 127을 이진수로 변환하면 (1111111) 이 되지않나요?
그러면 총 7자리입니다.
배열에 저장하면 아래처럼 되겠지요?
s(1)|s(2)|s(3)|s(4)|s(5)|s(6)|s(7)|s(8)|
s(8) = 1 | 1 | 1 | 1 | 1 | 1 | 1 | ??? |
한자리가 빕니다. 이것으로 인해서 4번 빈칸 디버깅 할때 ,
s(i) = R 이 정답인데, 이에 근거하여
S(8) = 1 이 되어 버리는데 ..
설령 s(8)부터 채워지는건가? 하고 가정하여 생각해 보아도
마지막에 출력할때는 s(1)부터 출력하게 플로차트가 짜져있더라구요.(6번빈칸위의 i=1,8에 의해서.)
무언가 논리에 안맞지 않나요? 궁금합니다 !
안녕하세요.
i를 8부터 시작하여 i=i-1로 1씩 감소합니다.
그러므로 산출되는 나머지는 S(8)부터 저장됩니다.
또한 S(i)=0으로 인해 S의 모든 배열의 값은 0으로 초기화됩니다.
2진수 변환이 마무리 되면 말씀하신데로 127은 1111111이므로
S(8)~S(2)까지 1111111이 저장됩니다.
S(1)에는 처음에 0으로 모든 배열을 초기화하였으므로 01111111이 저장됩니다.
출력하면 01111111이 됩니다. 일반적으로 2진수를 표현할 때 자리수가 정해져 있다면 빈 자리수는 0으로 채우게 됩니다.
변환할 값이 10이라면 00001010이 되는 것이죠.
오늘도 즐거운 하루 되세요.
"-
*2012-03-20 09:23:31
안녕하세요.
i를 8부터 시작하여 i=i-1로 1씩 감소합니다.
그러므로 산출되는 나머지는 S(8)부터 저장됩니다.
또한 S(i)=0으로 인해 S의 모든 배열의 값은 0으로 초기화됩니다.
2진수 변환이 마무리 되면 말씀하신데로 127은 1111111이므로
S(8)~S(2)까지 1111111이 저장됩니다.
S(1)에는 처음에 0으로 모든 배열을 초기화하였으므로 01111111이 저장됩니다.
출력하면 01111111이 됩니다. 일반적으로 2진수를 표현할 때 자리수가 정해져 있다면 빈 자리수는 0으로 채우게 됩니다.
변환할 값이 10이라면 00001010이 되는 것이죠.
오늘도 즐거운 하루 되세요.
"