C++ - Bitwise Operators
Bitwise Operators
bitmask c++ 연산
- 비트마스크 (BitMask)란?
- 비트마스크는 이진수를 사용하는 컴퓨터의 연산 방식을 이용하여, 정수의 이진수 표현을 자료구조로 쓰는 기법
- 비트연산자
- AND : (&) 두 정수를 한 bit씩 비교하면서 해당 bit가 둘다 1인경우에 1
-
OR : (** **) 두 정수를 한 bit씩 비교하면서 하나의 bit라도 1인 경우에 1 - XOR : (^) 두 정수를 한 bit씩 비교하면서 하나의 bit만 1인경우에 1
- NOT : (~) 정수하나를 입력받아서 한 비트씩 탐색하며 1인 bit는 0으로, 0인 bit는 1로
- Shit : («)/(») 비트들을 왼쪽 또는 오른쪽으로 원하는 만큼 움직이고 움직이고 나서 빈 자리는 0으로 채워진다.
// 13 - 00001101 int bitmask1 = (13 << 1); // 00011010 int bitmask2 = (13 >> 1); // 00000110 cout << bitmask1 << endl; // 26 cout << bitmask2 << endl; // 6 do { Vec.push_back( x & 1 ) } while ( x >>= 1 ); // x = (x >> 1)
x & 1
produces a value that is either 1 or 0, depending on the least significant bit ofx
: if the last bit is 1, the result ofx & 1
is 1; otherwise, it is 0. This is abitwise AND
operation.