很多时候利用位运算的特性可以存储更多的数据,节省磁盘空间。而 MySQL 提供了一系列函数方便我们做进制转换
函数 | 功能 |
---|---|
BIN(N) | 返回十进制 N 的二进制表示 |
OCT(N) | 返回十进制 N 的八进制表示 |
HEX(N) | 返回十进制 N 的十六进制表示 |
CONV(N,X,Y) | 返回 X 进制 N 的 Y 进制表示,X和Y的范围是 2 ~ 36 |
BIT_COUNT(N) | 返回十进制 N 在二进制情况下包含几个 1 |
BIN 函数
返回十进制 N 的二进制表示
mysql> select bin(3);
+--------+
| bin(3) |
+--------+
| 11 |
+--------+
1 row in set (0.00 sec)
OCT 函数
返回十进制 N 的八进制表示
mysql> select oct(10);
+---------+
| oct(10) |
+---------+
| 12 |
+---------+
1 row in set (0.00 sec)
HEX 函数
返回十进制 N 的十六进制表示
mysql> select hex(20),hex(11);
+---------+---------+
| hex(20) | hex(11) |
+---------+---------+
| 14 | B |
+---------+---------+
1 row in set (0.00 sec)
CONV 函数
返回 X 进制 N 的 Y 进制表示,X和Y的范围是 2 ~ 36,超出此范围返回 NULL
mysql> select conv(5,10,2),conv(101,2,10),conv(10,10,8);
+--------------+----------------+---------------+
| conv(5,10,2) | conv(101,2,10) | conv(10,10,8) |
+--------------+----------------+---------------+
| 101 | 5 | 12 |
+--------------+----------------+---------------+
1 row in set (0.00 sec)
BIT_COUNT 函数
返回十进制 N 在二进制情况下包含几个 1
mysql> select bit_count(2),bin(2);
+--------------+--------+
| bit_count(2) | bin(2) |
+--------------+--------+
| 1 | 10 |
+--------------+--------+
1 row in set (0.00 sec)
位运算还有一部分,但我归在聚合函数里面了。过几天会把聚合函数发出来。