C++ में हेक्स मान मुद्रित करना

C Mem Heksa Mana Mudrita Karana



C++ प्रोग्रामिंग में, हेक्साडेसिमल मानों को प्रिंट करना एक सामान्य आवश्यकता है। चाहे मेमोरी एड्रेस के साथ काम करना हो, बिटवाइज़ ऑपरेशन करना हो, या डेटा के हेक्साडेसिमल प्रतिनिधित्व से निपटना हो, हेक्स मानों को प्रभावी ढंग से प्रदर्शित करने के लिए विभिन्न तरीकों को समझना आवश्यक है। यह आलेख C++ में हेक्साडेसिमल मानों को मुद्रित करने, उनके अनुप्रयोगों और उपयोग के मामलों पर प्रकाश डालने के लिए विभिन्न तरीकों और तकनीकों की पड़ताल करता है।

Std::hex का उपयोग करके हेक्स मानों को प्रिंट करना

C++ में हेक्साडेसिमल मानों को प्रिंट करने का एक सीधा तरीका हेडर द्वारा प्रदान किए गए 'std::hex' मैनिपुलेटर का उपयोग करना है। यह मैनिपुलेटर प्रिंट करते समय आउटपुट स्ट्रीम को पूर्णांक मानों को हेक्साडेसिमल के रूप में व्याख्या करने का निर्देश देता है। कल्पना कीजिए कि आपके पास संख्याओं से भरा खजाना है। लेकिन सामान्य दशमलव प्रणाली के बजाय, वे सभी हेक्साडेसिमल की गुप्त भाषा में लिखे गए हैं। इन कोडों को समझने और उनके वास्तविक मूल्यों को प्रकट करने के लिए, C++ 'std::hex' नामक एक सहायक उपकरण प्रदान करता है। लाइब्रेरी में यह जादुई चाल आपके आउटपुट स्ट्रीम को डिकोडर रिंग में बदल देती है, उन रहस्यमय हेक्साडेसिमल संख्याओं को तुरंत उनके परिचित दशमलव समकक्षों में अनुवादित कर देती है।







#शामिल करें
#शामिल
मुख्य प्रवेश बिंदु ( ) {
पूर्णांक दशमलव मान = 907 ;
std::cout << 'हेक्साडेसिमल मान है:' << एसटीडी::हेक्स << दशमलव मान << std::endl;
वापस करना 0 ;
}


इस उदाहरण में, 'std::hex' मैनिपुलेटर को 'decimalValue' पूर्णांक को प्रिंट करने से पहले 'std::cout' आउटपुट स्ट्रीम पर लागू किया जाता है। हेक्स मान को प्रिंट करने के बाद, स्ट्रीम अपने सामान्य व्यवहार पर वापस आ जाती है। यह कोड पूरी तरह से दर्शाता है कि C++ में 'std::hex' मैनिपुलेटर का उपयोग करके हेक्साडेसिमल मान को कैसे प्रिंट किया जाए। यहां कोड का विवरण दिया गया है:



हेडर



: इसका उपयोग कंसोल पर प्रिंटिंग जैसे बुनियादी इनपुट/आउटपुट के लिए किया जाता है और आउटपुट को हेक्साडेसिमल के रूप में प्रारूपित करने के लिए 'std::hex' मैनिपुलेटर प्रदान करता है।





मुख्य समारोह

'इंट दशमलव वैल्यू = 907;' 'int' प्रकार के 'decimalValue' वेरिएबल को घोषित करता है और इसे 907 के दशमलव मान के साथ निर्दिष्ट करता है।



'std::cout << 'हेक्साडेसिमल मान है:' << std::hex << decimalValue << std::endl;' 'हेक्साडेसिमल मान:' प्रिंट करता है और उसके बाद 'दशमलव मान' का हेक्साडेसिमल प्रतिनिधित्व प्रिंट करता है।

'std::hex' आउटपुट स्ट्रीम को निम्नलिखित मान को हेक्साडेसिमल के रूप में व्याख्या करने का निर्देश देता है। 'दशमलव वैल्यू' चर में दशमलव मान को हेक्स में परिवर्तित किया जाता है। मुद्रण के बाद 'std::endl' एक नई पंक्ति वर्ण सम्मिलित करता है। अंत में, यह कोड अब 'हेक्साडेसिमल मान: 38B' प्रिंट करता है जैसा कि आप निम्नलिखित आउटपुट स्निपेट में देख सकते हैं:

'%x' प्रारूप विनिर्देशक का उपयोग करके हेक्स मानों को प्रिंट करना

C प्रोग्रामिंग भाषा से परिचित लोगों के लिए, 'प्रिंटफ' फ़ंक्शन C++ में हेक्साडेसिमल मानों को संक्षिप्त रूप से प्रिंट करता है। जबकि C++ और 'std::hex' दृष्टिकोण प्रदान करता है, 'printf' समान परिणाम प्राप्त करने के लिए एक संक्षिप्त और सीधा तरीका प्रदान करता है।

#शामिल करें
मुख्य प्रवेश बिंदु ( ) {
पूर्णांक दशमलव मान = 1256 ;
printf ( 'प्रिंटफ के साथ हेक्साडेसिमल मान है: %x \एन ' , दशमलव मान ) ;
वापस करना 0 ;
}


इस उदाहरण में, 'प्रिंटफ' फ़ंक्शन के भीतर '%x' प्रारूप विनिर्देशक इंगित करता है कि संबंधित तर्क को हेक्साडेसिमल में मुद्रित किया जाना चाहिए। दिया गया कोड C++ में 'प्रिंटफ' का उपयोग करके हेक्साडेसिमल मान को प्रिंट करने का एक आदर्श उदाहरण है। आइए इसे तोड़ें:

हेडर

: इस हेडर में 'प्रिंटफ' फ़ंक्शन और अन्य मानक इनपुट/आउटपुट फ़ंक्शन शामिल हैं। हेडर C++ के साथ आने वाले पुस्तकालयों के सुइट में शामिल है। यह C भाषा की लाइब्रेरी से कार्यक्षमता लाता है, जिससे C++ को क्लासिक इनपुट और आउटपुट तकनीकों का उपयोग करने की अनुमति मिलती है जो मूल रूप से समावेशन के माध्यम से C में पाए जाते हैं।

मुख्य समारोह

'पूर्णांक दशमलव मान = 1256;' 'decimalValue' नामक पूर्णांक चर के लिए 1256 का दशमलव मान घोषित और निर्दिष्ट करता है। 'प्रिंटफ' में 'प्रिंटफ' ('प्रिंटफ के साथ हेक्साडेसिमल मान है: %x\n', दशमलव वैल्यू);' स्टेटमेंट स्वरूपित आउटपुट को प्रिंट करने के लिए 'प्रिंटफ' फ़ंक्शन को कॉल करता है। '%x' 'प्रारूप विनिर्देशक' है जो इंगित करता है कि निम्नलिखित तर्क को लोअरकेस हेक्साडेसिमल संख्या के रूप में मुद्रित किया जाना चाहिए। अंत में, '\n' मुद्रण के बाद एक नई पंक्ति वर्ण सम्मिलित करता है। यह कोड कंसोल पर 'प्रिंटफ के साथ हेक्साडेसिमल मान 4e8 है' आउटपुट करता है जैसा कि निम्नलिखित आउटपुट स्निपेट में देखा गया है:

पैडिंग के साथ हेक्स मानों को प्रिंट करना

हेक्साडेसिमल मानों, विशेष रूप से मेमोरी पतों, के साथ काम करते समय, एक सुसंगत चौड़ाई या पैडिंग अक्सर वांछनीय होती है। इसे हेडर द्वारा प्रदान किए गए 'std::setw' मैनिपुलेटर का उपयोग करके प्राप्त किया जा सकता है। पैडिंग के साथ HEX मान कैसे प्रिंट करें, इसका एक उदाहरण यहां दिया गया है। यह प्रोग्राम दर्शाता है कि हेडर और मैनिपुलेटर विधियों का उपयोग करके पैडिंग के साथ C++ में हेक्साडेसिमल मान को कैसे प्रिंट किया जाए।

#शामिल करें
#शामिल
मुख्य प्रवेश बिंदु ( ) {
पूर्णांक दशमलव मान = 47 ;
std::cout << 'पैडिंग के साथ हेक्साडेसिमल मान है:' << std::setw ( 8 ) << एसटीडी::हेक्स << दशमलव मान << std::endl;
वापस करना 0 ;
}


इस उदाहरण में, std::setw(8) यह सुनिश्चित करता है कि हेक्साडेसिमल मान न्यूनतम 8 वर्णों की चौड़ाई के साथ मुद्रित किया गया है। यह कॉलम में या मेमोरी एड्रेस के साथ मानों को संरेखित करने के लिए विशेष रूप से उपयोगी है।

आइए कोड को तोड़ें और प्रत्येक पंक्ति को एक-एक करके समझें:

हेडर

: यह प्रिंटिंग के लिए 'std::cout' स्ट्रीम जैसी बुनियादी इनपुट/आउटपुट कार्यक्षमता प्रदान करता है।

: यह 'std::setw' जैसे फ़ॉर्मेटिंग मैनिपुलेटर्स प्रदान करता है जिनका उपयोग आउटपुट उपस्थिति को संशोधित करने के लिए किया जाता है।

मुख्य समारोह

'पूर्णांक दशमलव मान = 47;' 'दशमलव वैल्यू' नामक पूर्णांक चर के लिए 47 का दशमलव मान घोषित और निर्दिष्ट करता है।

'std::cout << 'पैडिंग के साथ हेक्साडेसिमल मान है:' << std::setw(8) << std::hex << decimalValue << std::endl;' स्टेटमेंट सेटव(8) पैडिंग के साथ 47 की हेक्साडेसिमल संख्या प्रिंट करता है। 'std::setw(8)' 8 के तर्क के साथ 'std::setw' मैनिपुलेटर लागू करता है, जो 8 वर्णों की न्यूनतम आउटपुट चौड़ाई निर्दिष्ट करता है।

'std::hex' 'std::hex' मैनिपुलेटर लागू करता है जो स्ट्रीम को अगले मान को हेक्साडेसिमल के रूप में व्याख्या करने के लिए कहता है जैसा कि दिए गए उदाहरणों में से एक में बताया गया है। निम्नलिखित आउटपुट कंसोल पर मुद्रित होता है:

बाइट डेटा के हेक्स मानों को प्रिंट करना

बाइट डेटा के साथ काम करते समय, प्रत्येक बाइट को दो अंकों वाले हेक्साडेसिमल मान के रूप में प्रस्तुत करना आम बात है। इसे यह सुनिश्चित करके प्राप्त किया जा सकता है कि चौड़ाई 2 पर सेट है और अग्रणी शून्य को भरने के लिए 'std::setfill('0')' का उपयोग करें। आपको यह समझने में मदद करने के लिए निम्नलिखित एक उदाहरण है कि बाइट डेटा के हेक्स मानों को कैसे प्रिंट किया जा सकता है:

#शामिल करें
#शामिल
मुख्य प्रवेश बिंदु ( ) {
अहस्ताक्षरित चार बाइटडेटा = 0xAB;
std::cout << 'बाइट डेटा का हेक्साडेसिमल प्रतिनिधित्व है:'
<< std::setw ( 2 ) << std::setfill ( '0' ) << एसटीडी::हेक्स << स्टेटिक_कास्ट < int यहाँ > ( बाइटडेटा )
<< std::endl;
वापस करना 0 ;
}


यहां, 'std::setw(2)' यह सुनिश्चित करता है कि प्रत्येक बाइट को न्यूनतम 2 वर्णों की चौड़ाई के साथ दर्शाया गया है, और 'std::setfill('0')' निर्दिष्ट करता है कि चौड़ाई को भरने के लिए अग्रणी शून्य का उपयोग किया जाना चाहिए।

यह पहले दिया गया प्रोग्राम विशिष्ट स्वरूपण के साथ C++ में हेक्साडेसिमल मान को प्रिंट करने के लिए अधिक उन्नत दृष्टिकोण प्रदर्शित करता है। बेहतर समझ के लिए आइए इसे तोड़ें:

हेडर

: यह प्रिंटिंग के लिए ''std::cout'' और ''std::hex'' जैसी बुनियादी इनपुट/आउटपुट कार्यक्षमता प्रदान करता है।

: यह 'std::setw' और 'std::setfill' जैसे फ़ॉर्मेटिंग मैनिपुलेटर्स प्रदान करता है जिनका उपयोग आउटपुट उपस्थिति को संशोधित करने के लिए किया जाता है।

मुख्य समारोह

मुख्य फ़ंक्शन में, एक अहस्ताक्षरित 'बाइटडेटा = 0xAB;' char को परिभाषित किया गया है जो 'byteData' नामक एक अहस्ताक्षरित char वैरिएबल घोषित करता है और इसे '0xAB' का हेक्साडेसिमल मान निर्दिष्ट करता है। 'std::cout << 'बाइट डेटा का हेक्साडेसिमल प्रतिनिधित्व है: ':' कथन आउटपुट स्ट्रीम का उपयोग करके संदेश को कंसोल पर आउटपुट करता है।

'<< std::setw(2) << std::setfill('0') << std::hex << static_cast (byteData) << std::endl;' स्टेटमेंट चेन आउटपुट को फॉर्मेट करने के लिए कई मैनिपुलेटर्स लागू करता है।

std::setw(2): यह न्यूनतम आउटपुट चौड़ाई को 2 वर्णों पर सेट करता है।

std::setfill('0'): यह निर्दिष्ट करता है कि न्यूनतम चौड़ाई तक पहुंचने के लिए आवश्यक किसी भी पैडिंग को '0' वर्ण से भरा जाना चाहिए।

std::hex: यह स्ट्रीम को अगले मान को हेक्साडेसिमल के रूप में व्याख्या करने के लिए कहता है।

static_cast (byteData): यह अहस्ताक्षरित चार डेटा को हेक्साडेसिमल में रूपांतरण से पहले एक 'int' में डालता है। यह तकनीकी रूप से आवश्यक नहीं है लेकिन कुछ स्वरूपण विकल्पों के साथ एकरूपता के लिए इसका उपयोग किया जा सकता है।

std::endl: यह प्रिंटिंग के बाद एक न्यूलाइन कैरेक्टर डालता है।

कंसोल पर मुद्रित इस प्रोग्राम का आउटपुट निम्नलिखित स्निपेट में दिखाया गया है:

निष्कर्ष

C++ में हेक्साडेसिमल मानों को प्रिंट करने में उपलब्ध टूल को समझना और विशिष्ट आवश्यकताओं के आधार पर उचित विधि का चयन करना शामिल है। चाहे आप 'std::hex' मैनिपुलेटर, 'प्रिंटफ' फ़ंक्शन, या पैडिंग और अग्रणी शून्य के लिए फ़ॉर्मेटिंग टूल के संयोजन का चयन करें, इन तकनीकों की ठोस समझ होना किसी भी C++ प्रोग्रामर के लिए आवश्यक है। इन तरीकों को सोच-समझकर लागू करके, आप यह सुनिश्चित कर सकते हैं कि आपके हेक्साडेसिमल मान सटीक और आकर्षक प्रारूप में प्रदर्शित होते हैं जो आपके C++ कोड की समग्र पठनीयता और स्पष्टता में योगदान करते हैं।