MySQL использует для двоичных операций 64-битовые величины BIGINT
,
следовательно, для двоичных операторов максимальный диапазон составляет 64
бита.
-
|
Побитовое ИЛИ
mysql> SELECT 29 | 15; -> 31
Результат является беззнаковым 64-битовым целым числом.
-
&
Побитовое И
mysql> SELECT 29 & 15; -> 13
Результат является беззнаковым 64-битовым целым числом.
-
^
Побитовый XOR (побитовое сложение по модулю 2)
mysql> SELECT 1 ^ 1; -> 0 mysql> SELECT 1 ^ 0; -> 1 mysql> SELECT 11 ^ 3; -> 8
Результат - беззнаковое 64-битное целое число.
XOR
был реализован в MySQL 4.0.2. -
<<
Сдвиг числа двойной длины (
BIGINT
) влево:mysql> SELECT 1 << 2; -> 4
Результат является беззнаковым 64-битовым целым числом.
-
>>
Сдвиг числа двойной длины (
BIGINT
) вправо:mysql> SELECT 4 >> 2; -> 1
Результат является беззнаковым 64-битовым целым числом.
-
~
Инвертировать все биты:
mysql> SELECT 5 & ~1; -> 4
Результат является беззнаковым 64-битовым целым числом.
-
BIT_COUNT(N)
Возвращает число битов, указанное в аргументе
N
:mysql> SELECT BIT_COUNT(29); -> 4