12.12 비트 함수
표 12.16 비트 단위의 함수
| 이름 | 설명 |
|---|---|
BIT_COUNT() | 설정되는 비트 수를 돌려줍니다 |
& | 비트 단위 AND |
~ | 비트를 반전합니다 |
| | 비트 OR |
^ | 비트 XOR |
<< | 왼쪽으로 이동 |
>> | 오른쪽 시프트 |
MySQL에서는 연산자의 최대 범위가 64 비트가되도록 비트 연산에 BIGINT (64 비트) 산술가 사용됩니다.
|비트 OR :
mysql>
SELECT 29 | 15;-> 31결과는 부호가없는 64 비트 정수입니다.
&비트 AND :
mysql>
SELECT 29 & 15;-> 13결과는 부호가없는 64 비트 정수입니다.
^비트 XOR :
mysql>
SELECT 1 ^ 1;-> 0 mysql>SELECT 1 ^ 0;-> 1 mysql>SELECT 11 ^ 3;-> 8결과는 부호가없는 64 비트 정수입니다.
<<longlong (
BIGINT) 숫자를 왼쪽으로 이동합니다.mysql>
SELECT 1 << 2;-> 4결과는 부호가없는 64 비트 정수입니다. 값은 64 비트로 잘립니다. 특히 시프트 횟수가 64 비트 부호없는 숫자 폭 이상 크기의 경우 결과가 0이됩니다.
>>longlong (
BIGINT) 숫자를 오른쪽으로 이동합니다.mysql>
SELECT 4 >> 2;-> 1결과는 부호가없는 64 비트 정수입니다. 값은 64 비트로 잘립니다. 특히 시프트 횟수가 64 비트 부호없는 숫자 폭 이상 크기의 경우 결과가 0이됩니다.
~모든 비트를 반전합니다.
mysql>
SELECT 5 & ~1;-> 4결과는 부호가없는 64 비트 정수입니다.
BIT_COUNT(N)인수
N에 설정되어있는 비트의 수를 돌려줍니다.mysql>
SELECT BIT_COUNT(29), BIT_COUNT(b'101010');-> 4 3