🧠프로그래밍/C++
BitOperator
악마반장
2023. 3. 2. 00:49
이전 글에서 비트에 대해서 이해를 했으니 이제 비트 연산자를 공부해 볼 차례이다.
기본적으로 비트단위연산자는 비트를 비교해서 또 다른 숫자를 나타내는 것이다(기본목적).
NOT
먼저 순서대로, NOT 연산자부터 보자
NOT 연산자는 비트 반전이므로, 0이 1로 1이 0으로 반전되는 것을 의미한다.
int Left = 1;
int Right = 3;
int Result = 0;
// 0b00000000000000000000000000000001;
// 0b11111111111111111111111111111110;
// Not 비트 반전.
Left = ~Left; // -2
AND
두개의 비트는 비교해서 둘 다 1인 비트만 1인 결과를 리턴한다.
// Left 0b00000000000000000000000000000001;
// Right 0b00000000000000000000000000000011;
// Result 0b00000000000000000000000000000001;
Result = Left & Right;
OR
두개의 비트를 비교해서 둘 중 하나만 1 이어도 1이다.
// Left 0b00000000000000000000000000000001;
// Right 0b00000000000000000000000000000011;
// Result 0b00000000000000000000000000000011;
Result = Left | Right;
XOR
둘이 다를 때만 1의 결과가 나온다.
// Left 0b00000000000000000000000000000000;
// Right 0b00000000000000000000000000000001;
// Result 0b0000000000000000000000000000000?;
Result = Left ^ Right; // 1
비트 왼쪽&오른쪽 시프트
// 1 => 0b00000000000000000000000000000001;
을 왼쪽으로 1칸 옮겨라;
// 0b00000000000000000000000000000010; // 0이 채워진다
Left = 1 << 1;
// 3 => 0b00000000000000000000000000000011;
// 0b00000000000000000000000000000110; // 6
Left = 3 << 1;
오른쪽은 정말 오른쪽으로 미는것.