南大通用GBase 8a数字在二进制,八进制,10进制,16进制之间转换函数CONV介绍和例子

本文介绍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)

参考