p.298 연습문제 질문 있습니다.
, 거_ 사람_참님이 작성p.298
28.10연습문제를 보면
정답이 while (i != 0) 이라고 하고 밑에 설명이 되어 있는데
저는 정답을 while (i <= 128) 로 했었거든요.
이게 정답이 되지 않는 이유가
1이 7번 왼쪽으로 가서 1000 0000 (128) 이 되고
1이 결국 8번째에는 0000 0000 (0) 이 되면서
while (i <= 128)에 계속 만족하게 되면서
무한 루프가 발생하게 되어 오답인 게 맞나요??
Re: p.298 연습문제 질문 있습니다.
, 도장_ 관리자님이 작성네, 맞습니다.
i <= 128 조건으로 설정할 경우, 1이 8번째 비트로 이동하면서 i의 값은 0이 되지만, 0이 128보다 작거나 같은 조건을 만족하므로 무한 루프에 빠지게 됩니다.
따라서 i != 0 조건으로 설정해야 i가 0이 되면 루프를 빠져나오게 되므로 정확한 출력 결과를 얻을 수 있습니다.