해결된 질문
작성
·
304
·
수정됨
0
안녕하세요.
우선 타 강의 플랫폼과 달리 큰돌님 강의는 개념과 문제풀이를 그림으로 그리면서 설명 해주셔서 너무 잘 듣고 있습니다. (C++ 은 안하고 Javascript로만 풀이 중)
그런데 비트연산자 개념강의 2번째 영상에서 일부 확인이 필요한 설명이 있는것 같아서 글 남깁니다. (오타는 이미 공지를 해주셨네요)
마지막 XOR 연산자에서 0은 1로 1은 0으로 라는 설명이 있는데
위키피디아에 설명된 것 처럼 각 자릿수를 비교해 같으면 0, 다르면 1이라는 설명이 맞지 않나 싶습니다.
(https://ko.wikipedia.org/wiki/%EB%B9%84%ED%8A%B8_%EC%97%B0%EC%82%B0)
강의 중 예제로 보면
n = 5 이고 idx = 0 일 때
n ^= (1 << idx)
= 101 ^ 001
= 100
//////////
101
^ 001
-----
100
//////////
앞에서부터 각 자릿수를 비교해보면
1과 0은 다르므로 1 ,
0과 0은 같으므로 0 ,
1과 1이 같으므로 0
이 아닌가 싶습니다.
답변 1
0
안녕하세요 lee님 ㅎㅎ
음.. 저게 어떻게 된거냐면,
xor 연산자는 0 1 > 1
0 0 또는 1 1 >> 0
이렇게 반환하는데요.
이를 비트마스킹에서 어떻게 쓰이냐면
(1<< idx)를 통해
10000이런꼴의 숫자를 만듭니다.
그리고 나서
100011이런 식의 숫자와 XOR을 시키는 것이죠.
그래서 만약 해당 번째가 1이라면 0으로 0이라면 1이 되는 것인데
xor에 대한 설명도 추가하도록 하겠습니다.
해당 부분 영상은 수정하도록 하겠습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
감사합니다.
강사 큰돌 올림.