在 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.

更新於: 30-06-2020

375 次瀏覽

開啟您的 事業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.