2015136077   3년 전

다음 코드에 대해 질문 드릴게 있습니다.

i값이 for (int i = 0; i < (1 << 2); i++)이고 

j값은for (int j = 0; j < 5; j++)까지 진행하게 됩니다. (각각의 i, j는 2중 for문의 값입니다)

그러면 j가 1일때 i의 값은 이진수로 '10' 이고 1<<1에서 '10' 이므로 둘의 값을 &연산하면 1이 되어 if값이 true가 되어야 된다 생각합니다. 

하지만 if 값이 진행되지 않습니다.

제가 어디서 잘 못 알고 있는 걸까요?

shg9411   3년 전

i가 2이고 1<<j가 2일 때를 말씀하시는 거라면 and연산 결과는 1이 아닌 2입니다.

shg9411   3년 전

and 연산 결과가 나오려면

1 and 3 (01, 11)

1 and 5 (001, 101)

3 and 5 (011, 101)

등 1의 자리 비트만 둘 다 1이어야 합니다.

2015136077   3년 전

어떻게 감사의 인사를 드려야할지 모르겠네요. 감사합니다!

댓글을 작성하려면 로그인해야 합니다.