给定一个binary(16)列,如何将其值显示为十六进制数?我一直在下面的控制台中进行实验,但未获得预期的结果。可能是我没有将数字正确转换为二进制吗?
我有以下示例查询:select hex(cast(10 as binary)),
但输出是相当意外:3130。
基本上,它似乎只是采用数字的十进制表示形式,并3在每个数字之前插入一个数字,例如2-> 32,22-> 3232,678-> 363738等。
如果我为二进制数据类型指定了一个长度(例如binary(16)),我将得到相同的行为,只是在右边用所需的0s 填充。
显然,这不是我想要的。我想念什么?
编辑:只是尝试convert(678, binary)而不是cast,相同的行为。
您还可以将 mysql 客户端设置为将二进制数据显示为十六进制,如下所述:
mysql CLI 工具是否提供了一种以控制台友好的方式显示二进制数据的方法?
mysql --binary-as-hex
Run Code Online (Sandbox Code Playgroud)
或者
[client]
binary-as-hex = true
Run Code Online (Sandbox Code Playgroud)
小智 3
使用CONV函数
-- convert '10000'(16 in binary) in hex
SELECT CONV('10000',2,16);
-- Ouput: 10
-- convert 'F' in hex to binary
SELECT CONV('F',16,2);
-- Output: 1111
Run Code Online (Sandbox Code Playgroud)
十六进制转二进制表
Hexadecimal Binary
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
10 10000
11 10001
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7612 次 |
| 最近记录: |