MySQL में हेक्साडेसिमल (आधार 16) और दशमलव (आधार 10) के बीच परिवर्तन के लिए CONV() फंक्शन का उपयोग करें।
सिंटैक्स
CONV(number, from_base, to_base)
हेक्स से दशमलव:
SELECT CONV('HEX_VALUE', 16, 10) AS decimal_value;
दशमलव से हेक्स:
SELECT CONV(decimal_value, 10, 16) AS hex_value;
उदाहरण के साथ समझें
सीधा क्वेरी
mysql> SELECT CONV('AB', 16, 10) AS DecimalResult;
+---------------+
| DecimalResult |
+---------------+
| 171 |
+---------------+
गणना समझें
AB हेक्स में:
- A = 10 (दशमलव)
- B = 11 (दशमलव)
- गणना: 10 × 16¹ + 11 × 16⁰ = 160 + 11 = 171
स्टोर्ड प्रोसीजर में उपयोग
DELIMITER //
CREATE PROCEDURE SP_HEX_TO_DEC(HEXVALUE VARCHAR(10))
BEGIN
DECLARE Decimalvalue INTEGER;
SET Decimalvalue = CONV(HEXVALUE, 16, 10);
SELECT Decimalvalue;
END //
DELIMITER ;
-- कॉल करें
CALL SP_HEX_TO_DEC('A'); -- परिणाम: 10
CALL SP_HEX_TO_DEC('FF'); -- परिणाम: 255
अन्य आधार परिवर्तन
-- बाइनरी से दशमलव
SELECT CONV('1010', 2, 10); -- 10
-- ऑक्टल से दशमलव
SELECT CONV('12', 8, 10); -- 10
-- दशमलव से बाइनरी
SELECT CONV(10, 10, 2); -- 1010
-- आधार 2 से 36 तक समर्थित
हेक्स लिटरल सिंटैक्स
MySQL में हेक्स लिटरल लिखने के दो तरीके:
-- x'...' सिंटैक्स
SELECT x'4142'; -- 'AB' (ASCII)
-- 0x... सिंटैक्स
SELECT 0x4142; -- 'AB' (ASCII)
-- दोनों समान हैं
SELECT x'41' = 0x41; -- 1 (TRUE)
व्यावहारिक उपयोग
- रंग कोड:
CONV('FF5733', 16, 10)→ 16737075 - बाइनरी डेटा: हेक्स स्ट्रिंग को संख्या में बदलना
- IP पते: IPv6 पते हेक्स में संग्रहीत
- हैश मान: MD5, SHA हेक्स स्ट्रिंग को संख्या में
नोट
CONV()64-बिट पूर्णांक तक काम करता है- बहुत बड़ी हेक्स स्ट्रिंग के लिए परिणाम अनुमानित हो सकता है
- ऋणात्मक मानों के लिए टूज कॉम्प्लीमेंट समझ आवश्यक