728x90
비트 연산자(bitwise operator)
비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행한다.
또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용한다.
비트 연산자 | 설명 |
& | 대응되는 비트가 모두 1이면 1을 반환함. (AND 연산) |
| | 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환함. (XOR 연산) |
~ | 비트를 1이면 0으로, 0이면 1로 반전시킴. (NOT 연산) |
<< | 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴. (left shift 연산) |
>> | 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산) |
SELECT b'1000' & b'1111', -- 첫 번째 비트만이 둘 다 1이므로, 연산 결과는 b'1000'이 됨.
b'1000' | b'1111', -- 모든 비트에 하나라도 1이 포함되어 있으므로, 연산 결과는 b'1111'이 됨.
b'1000' ^ b'1111', -- 첫 번째 비트를 제외한 모든 비트가 서로 다르므로, 연산 결과는 b'0111'이 됨.
b'1100' >> 1, -- 모든 비트를 1비트씩 오른쪽으로 이동시키므로, 연산 결과는 b'0110'이 됨.
b'1100' >> 2; -- 모든 비트를 2비트씩 오른쪽으로 이동시키므로, 연산 결과는 b'0011'이 됨.
실행 결과 | ||||
b'1000' & b'1111' | b'1000' | b'1111' | b'1000' ^ b'1111' | b'1100' >> 1 | b'1100' >> 2 |
8 | 15 | 7 | 6 | 3 |
MySQL에서는 '0'과 '1'로만 이루어진 문자열 앞에 'b'를 붙여 2진수를 표현할 수 있다.
'Programming > MySQL' 카테고리의 다른 글
[MySQL] 패턴 매칭 LIKE, REGEXP (0) | 2022.09.08 |
---|---|
[MySQL] 흐름 제어 CASE, IF(), IFNULL(), NULLIF() (0) | 2022.09.08 |
[MySQL] 논리 연산자 (logical operator) (0) | 2022.09.08 |
[MySQL] 비교 연산자 (comparison operator) (0) | 2022.09.08 |
[MySQL] 대입 연산자 (assignment operator) (0) | 2022.09.08 |