Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm việc với số hex trong MySQL?


Để 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.