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