inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

비트마스킹 개념 #2-1. 비트연산자의 기초(+, -)

XOR 연산자 설명 확인 부탁 드립니다.

해결된 질문

375

seungwoo lee

작성한 질문수 5

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

이 아닌가 싶습니다.

 

 

C++ 코테 준비 같이 해요!

답변 1

0

큰돌

안녕하세요 lee님 ㅎㅎ

음.. 저게 어떻게 된거냐면,

xor 연산자는 0 1 > 1

0 0 또는 1 1 >> 0

이렇게 반환하는데요.

이를 비트마스킹에서 어떻게 쓰이냐면
(1<< idx)를 통해

10000이런꼴의 숫자를 만듭니다.

그리고 나서

100011이런 식의 숫자와 XOR을 시키는 것이죠.

그래서 만약 해당 번째가 1이라면 0으로 0이라면 1이 되는 것인데

xor에 대한 설명도 추가하도록 하겠습니다.

해당 부분 영상은 수정하도록 하겠습니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

감사합니다.

강사 큰돌 올림.

1-E질문입니다!

0

518

2

3-L 틀린 부분 피드백 부탁드립니다.

0

820

2

1-A문제 순열재귀함수 질문입니다.

0

382

1

1-A 일곱난쟁이문제입니다

0

456

1

문제 풀 때 방향성에 대해

0

800

1

맥에서 vs code로 실행 관련 질문입니다

0

523

1

17071번 메모리 초과

0

386

1

1-C질문입니다!

0

421

2

2-B BFS 시간초과질문

0

630

2

1-O 13번 라인

0

441

1

6-J 놀이공원 문제 질문

0

381

1

구현관련 질문

0

483

1

강의 교안

0

319

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

545

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

535

1

1-K

0

473

2

3-G번 질문있습니다.

1

473

3

3-C 실행 시간 질문드립니다.

0

493

1

4-A 문제 풀이 질문있습니다.

0

590

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

435

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

334

1

3-O go 함수 질문 드립니다.

1

447

2

4-A 출력 질문

0

304

1

1주차 1-O 질문드립니다

0

258

1