在 MySQL 中使用十六进制数?
为了使用十六进制,使用 CONV() 函数在进制之间进行转换。语法如下所示 −
SET anyVariableName = CONV(yourHexValue,16,10);
为了理解以上语法,我们创建一个存储过程。创建存储过程的查询如下所示 −
mysql> DELIMITER // mysql> CREATE PROCEDURE SP_HEX_TO_DEC( HEXVALUE VARCHAR(10) ) -> BEGIN -> DECLARE Decimalvalue INTEGER; -> SET Decimalvalue = CONV(HEXVALUE,16,10); -> select Decimalvalue; -> END; -> // Query OK, 0 rows affected (0.19 sec) mysql> DELIMITER ;
上面的存储过程将十六进制转换为十进制。因为我们知道 A 在十进制中表示 10,我们将 A 作为参数传递。使用 CALL 命令调用存储过程。
语法如下所示 −
CALL yourStoredProcedureName;
使用 CALL 命令调用上面的存储过程。查询如下所示 −
mysql> call SP_HEX_TO_DEC('A');
以下是使用上面创建的存储过程计算的十进制值输出 −
+--------------+ | Decimalvalue | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
直接使用 select 语句检查。
mysql> select conv('AB',16,10) as DecimalResult;
以下是输出 −
+---------------+ | DecimalResult | +---------------+ | 171 | +---------------+ 1 row in set (0.00 sec)
现在让我们了解将十六进制转换为十进制的步骤。记住这个规则 −
A and B represented as 10 and 11 respectively in hexadecimal. To convert it into decimal rule is as follows: N ………+value3 *162 +value2 *161 + value1 * 160 = 10 * 161 + 11 * 160 = 160+11 = 171.
广告