在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;
   -> //
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)

直接使用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.