1208번 - 부분수열의 합 2
다음 코드에 대해 질문 드릴게 있습니다.
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 값이 진행되지 않습니다.
제가 어디서 잘 못 알고 있는 걸까요?
i가 2이고 1<<j가 2일 때를 말씀하시는 거라면 and연산 결과는 1이 아닌 2입니다.
and 연산 결과가 나오려면
1 and 3 (01, 11)
1 and 5 (001, 101)
3 and 5 (011, 101)
등 1의 자리 비트만 둘 다 1이어야 합니다.
어떻게 감사의 인사를 드려야할지 모르겠네요. 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
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 값이 진행되지 않습니다.
제가 어디서 잘 못 알고 있는 걸까요?