您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
MySQL提供了多种函数来实现不同进制之间的数值转换,这在处理二进制数据、权限掩码或特殊编码时非常有用。下面介绍几种常用的进制转换方法。
SELECT BIN(10); -- 输出: '1010' (十进制10转二进制)
SELECT OCT(10); -- 输出: '12' (十进制10转八进制)
SELECT HEX(255); -- 输出: 'FF' (十进制255转十六进制)
CONV()函数可以在任意两种进制之间转换:
SELECT CONV('1010', 2, 10); -- 二进制'1010'转十进制,输出: '10'
SELECT CONV('A', 16, 10); -- 十六进制'A'转十进制,输出: '10'
SELECT CONV('12', 8, 10); -- 八进制'12'转十进制,输出: '10'
MySQL支持直接使用0x前缀表示十六进制数:
SELECT 0x41; -- 输出: 65 (十六进制41转十进制)
将十六进制字符串转为二进制数据:
SELECT UNHEX('4D7953514C'); -- 输出: 'MySQL'的二进制表示
SELECT b'1010'; -- 输出: 二进制1010的十进制值(10)
获取二进制数据的位长度:
SELECT BIT_LENGTH(b'1010'); -- 输出: 4
-- 将权限掩码从二进制转换为十进制存储
INSERT INTO permissions (mask) VALUES (CONV('1101', 2, 10));
-- 将IP地址从十六进制转换为点分十进制
SELECT INET_NTOA(CONV('7F000001', 16, 10)); -- 输出: 127.0.0.1
注意:MySQL的进制转换函数返回的都是字符串类型,如需数值运算需要显式转换。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。