[SQL] MySQL 비트연산

Kim Hyen Su·2024년 7월 23일

SQL

목록 보기
6/15
post-thumbnail

개요

프로그래머스 SQL 고득점 Kit를 풀던 중 비트 연산자 관련 문제가 나오면서 많이 헤맸습니다. Java 언어 학습 시 잠깐 익혔던 연산자여서 많이 까먹고 있었던 내용이어서 이참에 짧게 포스팅할까 합니다.

비트 연산자

& : 대응되는 비트가 모두 1이면 1을 반환합니다.(AND)
| : 대응되는 비트 중 하나라도 1이면 1을 반환합니다.(OR)
^ : 대응되는 비트가 서로 다르면 1을 반환합니다.(XOR)
~ : 비트를 1이면 0으로, 0이면 1로 반전시킵니다.(NOT)
<< : 지정한 수만큼 비트를 왼쪽으로 이동시킵니다.
>> : 지정한 수만큼 비트를 전부 오른쪽으로 이동시킵니다. 이때, 부호 비트는 제외합니다.

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'이 됨.

마무리

간단하게 비트 연산자에 대해서 정리해보는 시간을 가졌습니다. 이를 문제에 직접 적용해보는 연습을 해보도록 하겠습니다.

profile
백엔드 서버 엔지니어

0개의 댓글