%ul और %lu C फॉर्मेट स्पेसिफायर के बीच क्या अंतर है?

Ul Aura Lu C Phormeta Spesiphayara Ke Bica Kya Antara Hai



उचित का प्रयोग प्रारूप विनिर्देशक सी भाषा में सफल प्रोग्रामिंग का एक महत्वपूर्ण घटक है। यह बताता है कि यह जानना क्यों आवश्यक है कि क्यों %उल और % लू प्रारूप विनिर्देशक अलग होना। इन दोनों के बीच के अंतर को समझना इतना महत्वपूर्ण है क्योंकि यह बदलता है कि एक प्रोग्रामर सिस्टम के वातावरण के साथ कैसे इंटरैक्ट करता है, और जब ये प्रारूप विनिर्देशक गलत तरीके से उपयोग किए जाते हैं तो संभावित त्रुटियां उत्पन्न हो सकती हैं।

%ul और %lu प्रारूप विनिर्देशक क्या हैं?

शुरू करने के लिए, यह ध्यान रखना महत्वपूर्ण है कि दोनों %उल और % लू प्रारूप विनिर्देशक C में प्रोग्रामिंग करते समय उपयोग किया जाता है और वे दोनों अहस्ताक्षरित लंबे डेटा प्रकारों का प्रतिनिधित्व करते हैं। हालाँकि, अक्षरों की स्थिति ' एल ' और ' में 'अलग है। पत्र ' में ' और ' एल ' अर्थ होना ' अहस्ताक्षरित ' और ' लंबा ,' क्रमश। इच्छित तर्क प्रकार इन अक्षरों के अनुक्रम द्वारा निर्धारित किया जाता है। ' %में ” निर्दिष्ट करता है कि जिस वर्ण या स्ट्रिंग पर इसे लागू किया गया है, उसका डेटा प्रकार अहस्ताक्षरित है int यहाँ जब ' % ल ” भाग निर्दिष्ट करता है कि यह एक अहस्ताक्षरित लंबा डेटा प्रकार है। दूसरे शब्दों में, %उल जबकि एक अहस्ताक्षरित लंबे डेटा प्रकार को इंगित करता है % लू समान इंगित करता है लेकिन एक अतिरिक्त के साथ ' लंबा 'आकार संशोधक।

नतीजतन, यदि आप उपयोग करते हैं %उल एक चर पर जो एक अहस्ताक्षरित लंबा पूर्णांक नहीं है, आप एक प्रत्यय प्राप्त कर सकते हैं एल आउटपुट के अंत में। एक निश्चित डेटा प्रकार के साथ एक चर को प्रिंट करने का प्रयास करते समय, उपयुक्त प्रारूप विनिर्देशक का उपयोग करना महत्वपूर्ण है।







यहां कुछ नमूना कोड दिखाया गया है कि कैसे %उल और % लू प्रारूप विनिर्देशक भिन्न होते हैं:



सी में %ul प्रारूप विनिर्देशक

#शामिल

मुख्य प्रवेश बिंदु ( ) {
अहस्ताक्षरित लंबा int i = 1 2 3 4 5 6 7 8 9 0 ;
printf ( '%%ul प्रारूप विनिर्देशक का उपयोग करना:%ul \एन ' , मैं ) ;
वापस करना 0 ;
}

उपरोक्त कोड में, हम चर को परिभाषित करते हैं मैं एक अहस्ताक्षरित लंबे पूर्णांक के रूप में और इसे प्रारंभ करें 1 2 3 4 5 6 7 8 9 0 . printf कमांड तब उपयोग करता है %उल प्रारूप विनिर्देशक के मूल्य को मुद्रित करने के लिए मैं . क्योंकि बस %में विनिर्देशक का प्रमुख घटक है और एल प्रारूप के बाहर है, यह संख्या को प्रत्यय के साथ प्रिंट करेगा एल अंत में।



उत्पादन





सी में %lu प्रारूप विनिर्देशक

#शामिल

मुख्य प्रवेश बिंदु ( ) {
अहस्ताक्षरित लंबा int i = 1 2 3 4 5 6 7 8 9 0 ;
printf ( '%%lu प्रारूप विनिर्देशक का उपयोग करना: %lu \एन ' , मैं ) ;
वापस करना 0 ;
}

उपरोक्त कोड में, अहस्ताक्षरित लंबा पूर्णांक चर मैं घोषित किया जाता है और 1234567890 पर प्रारंभ किया जाता है और फिर इसका उपयोग करके मुद्रित किया जाता है % लू प्रारूप विनिर्देशक।

उत्पादन



सी में %ul और %lu प्रारूप विनिर्देशक के बीच अंतर

1: मानों की श्रेणी

के बीच मुख्य अंतर है %उल और % लू उन मूल्यों की श्रेणी के साथ करना है जिनका वे प्रतिनिधित्व करने की अपेक्षा करते हैं। C में प्रोग्रामिंग करते समय, अहस्ताक्षरित लंबा डेटा प्रकार अन्य डेटा प्रकारों से भिन्न प्रारूप का उपयोग करता है, जिसमें अहस्ताक्षरित int डेटा प्रकार भी शामिल है। एक 32-बिट इंट को अपने मूल्य को स्टोर करने के लिए केवल 32 बिट्स मेमोरी की आवश्यकता होती है, जबकि एक अहस्ताक्षरित लंबे समय के लिए समान प्रकार के डेटा के लिए 64 बिट्स की आवश्यकता होती है, इस प्रकार एक इंट की तुलना में अधिक महत्वपूर्ण रेंज होती है। इस का मतलब है कि %उल 0 से +2^32-1 तक मान स्वीकार करेगा, जबकि % लू विनिर्देशक 0 से +2^64-1 तक मान स्वीकार करेगा।

2: प्रेसिजन

उन मूल्यों की शुद्धता में भी अंतर होता है जिनका वे प्रतिनिधित्व करने की अपेक्षा करते हैं। साथ %उल विनिर्देशक, एक प्रोग्रामर केवल 2 ^ 32-1 तक के मूल्यों का प्रतिनिधित्व करने में सक्षम है, जबकि % लू विनिर्देशक 2^64-1 तक मानों का प्रतिनिधित्व कर सकता है। हालांकि यह पहली नज़र में बड़ा अंतर नहीं लग सकता है, यह अप्रत्यक्ष रूप से परिणामों की सटीकता को प्रभावित कर सकता है। एक मान को संग्रहीत करने के लिए डिज़ाइन किया गया प्रोग्राम, उदाहरण के लिए, +2 ^ 64 की श्रेणी का उपयोग करते समय त्रुटियों में चलेगा %उल विनिर्देशक क्योंकि वे डेटा को वांछित प्रारूप में संग्रहीत करने में सक्षम नहीं होंगे, इस प्रकार सटीकता की हानि हो सकती है।

3: मेमोरी

आखिरकार, %उल और % लू स्मृति के उपयोग में भी भिन्नता है। %उल विनिर्देशक को डेटा के लिए 32 बिट मेमोरी की आवश्यकता होती है, जबकि % लू एक ही प्रकार के डेटा के लिए 64 बिट्स की आवश्यकता होती है, जिसका अर्थ है % लू की तुलना में लगभग दोगुनी मेमोरी लेता है %उल . यह छोटे, निम्न-स्तर के कार्यक्रमों में एक बड़ा अंतर नहीं लग सकता है, लेकिन यह जल्दी से अप्रबंधनीय हो सकता है क्योंकि प्रोग्राम की मेमोरी का उपयोग अक्सर जटिलता के साथ बढ़ जाता है, जिसका अर्थ है कि % लू बड़े पैमाने के अनुप्रयोगों से निपटने के लिए आदर्श नहीं है।

4: प्रारूप

उपयोग करते समय आउटपुट के सटीक स्वरूप को समझना महत्वपूर्ण है %उल या % लू . विशेष रूप से, %उल प्रारूप विनिर्देशक हमेशा पूर्णांक को 8-अंकीय हेक्साडेसिमल मान के रूप में आउटपुट करता है जबकि % लू प्रारूप विनिर्देशक पूर्णांक को 8-अंकीय दशमलव मान के रूप में आउटपुट करता है। इसका मतलब यह है कि यदि एक पूर्णांक को हेक्साडेसिमल मान के रूप में दर्शाया गया है, तो इसे एक के रूप में प्रिंट किया जाना चाहिए %उल जबकि यदि पूर्णांक को दशमलव मान के रूप में दर्शाया गया है, तो इसे एक के रूप में मुद्रित किया जाना चाहिए % लू .

अंतिम विचार

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