Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การทำงานกับเลขฐานสิบหก (Hex) ใน MySQL

แปลงเลขฐานสิบหก (Hexadecimal) เป็นฐานสิบ (Decimal) ใน MySQL

ใช้ฟังก์ชัน CONV() สำหรับแปลงฐานตัวเลขระหว่างระบบต่างๆ

ไวยากรณ์

CONV(number, from_base, to_base)

Hex -> Decimal: CONV(hex_value, 16, 10)

ตัวอย่างการใช้งาน

แปลงโดยตรงด้วย SELECT:

SELECT CONV('A', 16, 10) AS DecimalResult;  -- 10
SELECT CONV('AB', 16, 10) AS DecimalResult; -- 171

สร้าง Stored Procedure สำหรับแปลง Hex เป็น Decimal:

DELIMITER //
CREATE PROCEDURE SP_HEX_TO_DEC(HEXVALUE VARCHAR(10))
BEGIN
    DECLARE Decimalvalue INTEGER;
    SET Decimalvalue = CONV(HEXVALUE, 16, 10);
    SELECT Decimalvalue;
END //
DELIMITER ;

เรียกใช้ Stored Procedure:

CALL SP_HEX_TO_DEC('A');  -- ผลลัพธ์: 10

หลักการแปลง Hex เป็น Decimal

Hex: A=10, B=11, C=12, D=13, E=14, F=15

AB (hex) = 10×16¹ + 11×16⁰ = 160 + 11 = 171 (decimal)

การแปลงฐานอื่นๆ

การแปลงคำสั่งตัวอย่าง
Hex -> DecimalCONV(hex, 16, 10)CONV('FF', 16, 10) = 255
Decimal -> HexCONV(dec, 10, 16)CONV(255, 10, 16) = 'FF'
Binary -> DecimalCONV(bin, 2, 10)CONV('1010', 2, 10) = 10
Decimal -> BinaryCONV(dec, 10, 2)CONV(10, 10, 2) = '1010'
Octal -> DecimalCONV(oct, 8, 10)CONV('77', 8, 10) = 63

Hex Literals ใน MySQL

สามารถเขียน hex literal โดยตรงได้:

SELECT 0x41;        -- 'A' (character)
SELECT x'41';       -- 'A' (character)
SELECT 0x41+0;      -- 65 (numeric value)

การใช้งานจริง

  • จัดการสี (Color codes): #FF0000 -> RGB
  • Encoding/Decoding ข้อมูล binary
  • Bitwise operations
  • UUID/GUID manipulation