Để làm việc với hex, hãy sử dụng hàm CONV () để chuyển đổi giữa các cơ sở. Cú pháp như sau -
SET anyVariableName = CONV(yourHexValue,16,10);
Để hiểu cú pháp trên, chúng ta hãy tạo một thủ tục được lưu trữ. Truy vấn để tạo một thủ tục được lưu trữ như sau -
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 ;
Quy trình được lưu trữ ở trên chuyển đổi hệ thập lục phân thành thập phân. Như chúng ta biết A đại diện cho 10 ở dạng thập phân, chúng ta sẽ chuyển A làm tham số. Gọi thủ tục đã lưu bằng lệnh CALL.
Cú pháp như sau -
CALL yourStoredProcedureName;
Gọi thủ tục đã lưu ở trên bằng lệnh CALL. Truy vấn như sau -
mysql> call SP_HEX_TO_DEC('A');
Sau đây là kết quả hiển thị giá trị thập phân được tính bằng quy trình được lưu trữ đã tạo ở trên -
+--------------+ | Decimalvalue | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
Kiểm tra trực tiếp với câu lệnh select.
mysql> select conv('AB',16,10) as DecimalResult;
Sau đây là kết quả -
+---------------+ | DecimalResult | +---------------+ | 171 | +---------------+ 1 row in set (0.00 sec)
Bây giờ chúng ta hãy xem quy trình chuyển hex sang thập phân. Hãy nhớ quy tắc này -
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.