本文介绍GBase 8a 数据库集群提供的,数字在不同进制之间的转换的函数,支持2,8,10,16最高到36进制。
目录导航
语法
CONV(N,from_base,to_base)
N :一个数字或字符串。
from_base 原始进制类型,支持2-36
to_base 目标进制类型,支持2-36
说明
不同数字进制间的转换。将 N 由 from_base 进制转化为 to_base 进制,返回值为 to_base 进制形式的字符串。
如有任意一个参数为 NULL,则返回值为 NULL。
参数 N 为整数,或字符串。最小为 2 进制,最大为 36 进制。
如果 to_base 是一个负数,则 N 被看作一个带符号数。否则,N 被看作无符号数。
CONV(N,10,2)等价于 BIN(N)。
样例
10进制转换到其它进制
这部分介绍10进制数字,转换成其它进制数字的例子。
10进制转换到16进制数字
gbase> select conv(100,10,16);
+-----------------+
| conv(100,10,16) |
+-----------------+
| 64 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)
10进制抓换到8进制数字
gbase> select conv(100,10,8);
+----------------+
| conv(100,10,8) |
+----------------+
| 144 |
+----------------+
1 row in set (Elapsed: 00:00:00.00)
10进制转换到2进制数字
gbase> select conv(100,10,2);
+----------------+
| conv(100,10,2) |
+----------------+
| 1100100 |
+----------------+
1 row in set (Elapsed: 00:00:00.00)
10进制转换到24进制数字
比如100小时,转换24进制等于4天4小时。
gbase> select conv(100,10,24);
+-----------------+
| conv(100,10,24) |
+-----------------+
| 44 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)
gbase>
10进制转换到其它进制数字
gbase> select conv(100,10,32);
+-----------------+
| conv(100,10,32) |
+-----------------+
| 34 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)
16进制到其它进制转换
这部分介绍10进制数字,转换成其它进制数字的例子。
16进制转换到2进制数字
gbase> select conv('AB',16,2);
+-----------------+
| conv('AB',16,2) |
+-----------------+
| 10101011 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)
16进制转换到8进制数字
gbase> select conv('AB',16,8);
+-----------------+
| conv('AB',16,8) |
+-----------------+
| 253 |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)
16进制转换到10进制数字
gbase> select conv('AB',16,10);
+------------------+
| conv('AB',16,10) |
+------------------+
| 171 |
+------------------+
1 row in set (Elapsed: 00:00:00.00)
16进制转换到24进制数字
gbase> select conv('AB',16,24);
+------------------+
| conv('AB',16,24) |
+------------------+
| 73 |
+------------------+
1 row in set (Elapsed: 00:00:00.00)
16进制转换到其它进制数字
gbase> select conv('AB',16,36);
+------------------+
| conv('AB',16,36) |
+------------------+
| 4R |
+------------------+
1 row in set (Elapsed: 00:00:00.00)
2进制到其它进制转换
这部分介绍2进制数字,转换成其它进制数字的例子。
2进制转换到8进制数字
gbase> select conv('10001000',2,8);
+----------------------+
| conv('10001000',2,8) |
+----------------------+
| 210 |
+----------------------+
1 row in set (Elapsed: 00:00:00.00)
2进制转换到10进制数字
gbase> select conv('10001000',2,10);
+-----------------------+
| conv('10001000',2,10) |
+-----------------------+
| 136 |
+-----------------------+
1 row in set (Elapsed: 00:00:00.00)
2进制转换到16进制数字
gbase> select conv('10001000',2,16);
+-----------------------+
| conv('10001000',2,16) |
+-----------------------+
| 88 |
+-----------------------+
1 row in set (Elapsed: 00:00:00.00)
2进制转换到24进制数字
gbase> select conv('10001000',2,24);
+-----------------------+
| conv('10001000',2,24) |
+-----------------------+
| 5G |
+-----------------------+
1 row in set (Elapsed: 00:00:00.00)
2进制转换到其它进制数字
gbase> select conv('10001000',2,36);
+-----------------------+
| conv('10001000',2,36) |
+-----------------------+
| 3S |
+-----------------------+
1 row in set (Elapsed: 00:00:00.00)