बूलियन फ्लैग: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
==मेमोरी उपयोग== | ==मेमोरी उपयोग== | ||
इस प्रकार से एक एकल [[बाइट]] में प्रत्येक बिट पर बूलियन फ्लैग को प्रतिचित्रित करके 8 अलग-अलग बूलियन फ्लैग सम्मिलित हो सकते हैं, जिससे यह डेटा भंडारण | इस प्रकार से एक एकल [[बाइट]] में प्रत्येक बिट पर बूलियन फ्लैग को प्रतिचित्रित करके 8 अलग-अलग बूलियन फ्लैग सम्मिलित हो सकते हैं, जिससे यह डेटा भंडारण की बहुत ही मितव्ययी और संहत विधि बन जाती है। अतः इसे पैक्ड प्रतिरूपण या बिट-पैकिंग के रूप में जाना जाता है, और प्रति बाइट मात्र बूलियन फ्लैग के साथ विपरीत एन्कोडिंग को विरल प्रतिरूपण के रूप में जाना जाता है। [[ बाइट संबोधन |बाइट-एड्रेसेबल]] मेमोरी के लिए पैक किए गए प्रतिरूपण को प्रत्येक बाइट में अलग-अलग फ्लैग तक पहुंचने के लिए [[बिट मास्क]] और [[बिट-शिफ्ट]] की पूर्ण रूप से आवश्यकता होती है, जिसके लिए अतिरिक्त निर्देशों की आवश्यकता हो सकती है, जबकि विरल प्रतिरूपण के लिए बिट मास्किंग की आवश्यकता नहीं होती है। इस प्रकार से पैक्ड प्रतिरूपण सामान्यतः हार्डवेयर और [[प्रोसेसर रजिस्टर]] में [[बिट फ़ील्ड|बिट क्षेत्र]] के रूप में पाए जाते हैं,<ref name="The Linux Kernel documentation">{{cite web | title=सामान्य बिटफ़ील्ड पैकिंग और अनपैकिंग फ़ंक्शन| website=The Linux Kernel documentation | url=https://www.kernel.org/doc/html/latest/core-api/packing.html | access-date=2021-04-10}}</ref> जबकि विरल प्रतिरूपण सामान्यतः सॉफ्टवेयर में या अधिक बाइट्स की चौड़ाई वाले चर (कंप्यूटर विज्ञान) के रूप में पाए जाते हैं, यद्यपि पैक्ड प्रतिरूपण का भी सपोर्ट किया जा सकता है।<ref name="cppreference.com 2021">{{cite web | title=std::vector | website=cppreference.com | date=2021-03-09 | url=https://en.cppreference.com/w/cpp/container/vector_bool | access-date=2021-04-10}}</ref> | ||
==दक्षता== | ==दक्षता== | ||
अतः अधिकांश [[कंप्यूटर भाषा|कंप्यूटर लैंग्वेज]] ट्रूथ संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का सपोर्ट करती हैं और सामान्यतः [[बिटवाइज़ ऑपरेशन]] का उपयोग करके बाइट पर मात्र निर्देश के साथ स्थितियों के 256 विभिन्न संयोजनों का परीक्षण किया जा सकता है। इस प्रकार से [[ प्रोसेसर डिज़ाइन |प्रोसेसर डिज़ाइन]] और [[समानांतर कंप्यूटिंग]] में प्रगति का अर्थ है कि बूलियन फ्लैग पर और भी अधिक [[बूलियन बीजगणित]] संचालन [[SIMD|एसआईएमडी]] तकनीक का उपयोग करके मात्र निर्देश के साथ किया जा सकता है, जिसे प्रायः प्रोग्रामिंग लैंग्वेजों में आंतरिक फलन के रूप में लागू किया जाता है।<ref>{{cite web | title=इंटेल इंट्रिनिक्स गाइड| website=Intel Developer Zone | url=https://software.intel.com/sites/landingpage/IntrinsicsGuide/ | access-date=2021-04-10}}</ref> | अतः अधिकांश [[कंप्यूटर भाषा|कंप्यूटर लैंग्वेज]] ट्रूथ संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का सपोर्ट करती हैं और सामान्यतः [[बिटवाइज़ ऑपरेशन]] का उपयोग करके बाइट पर मात्र निर्देश के साथ स्थितियों के 256 विभिन्न संयोजनों का परीक्षण किया जा सकता है। इस प्रकार से [[ प्रोसेसर डिज़ाइन |प्रोसेसर डिज़ाइन]] और [[समानांतर कंप्यूटिंग]] में प्रगति का अर्थ है कि बूलियन फ्लैग पर और भी अधिक [[बूलियन बीजगणित]] संचालन [[SIMD|एसआईएमडी]] तकनीक का उपयोग करके मात्र निर्देश के साथ किया जा सकता है, जिसे प्रायः प्रोग्रामिंग लैंग्वेजों में आंतरिक फलन के रूप में लागू किया जाता है।<ref>{{cite web | title=इंटेल इंट्रिनिक्स गाइड| website=Intel Developer Zone | url=https://software.intel.com/sites/landingpage/IntrinsicsGuide/ | access-date=2021-04-10}}</ref> | ||
==उपयोग== | ==उपयोग== | ||
अतः कभी-कभी, कुछ प्रतिबन्धों के ज्ञात होने पर मात्र फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदाहरण के लिए <code>if</code>) | अतः कभी-कभी, कुछ प्रतिबन्धों के ज्ञात होने पर मात्र फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदाहरण के लिए <code>if</code>) होते हैं जो अत्यधिक जटिल हो सकते हैं। इस प्रकार से जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से प्रारम्भ या संवृत कर दिए जाते हैं, तो [[सॉफ़्टवेयर परीक्षण]] प्रतिबन्धों के विभिन्न संयोजनों पर प्रारम्भ हो सकता है - स्वयं चर के अतिरिक्त फ़्लैग के संदर्भ में है। अतः यह प्रसंस्करण को अत्यधिक सरल बना सकता है, और मेमोरी में उनके बाइनरी प्रतिरूपण को प्रतिचित्रित करके [[निर्णय तालिका|निर्णय सारणी]] को लागू करने की पूर्ण रूप से अनुमति देता है। | ||
==यह भी देखें== | ==यह भी देखें== |
Revision as of 11:16, 6 August 2023
कंप्यूटर विज्ञान में बूलियन फ्लैग, ट्रूथ बिट या ट्रूथ फ्लैग एक ऐसा बूलियन मान है जिसे या अधिक बिट्स के रूप में दर्शाया जाता है, जो दो संभावित मानों के साथ अवस्था चर को एन्कोड करता है।
मेमोरी उपयोग
इस प्रकार से एक एकल बाइट में प्रत्येक बिट पर बूलियन फ्लैग को प्रतिचित्रित करके 8 अलग-अलग बूलियन फ्लैग सम्मिलित हो सकते हैं, जिससे यह डेटा भंडारण की बहुत ही मितव्ययी और संहत विधि बन जाती है। अतः इसे पैक्ड प्रतिरूपण या बिट-पैकिंग के रूप में जाना जाता है, और प्रति बाइट मात्र बूलियन फ्लैग के साथ विपरीत एन्कोडिंग को विरल प्रतिरूपण के रूप में जाना जाता है। बाइट-एड्रेसेबल मेमोरी के लिए पैक किए गए प्रतिरूपण को प्रत्येक बाइट में अलग-अलग फ्लैग तक पहुंचने के लिए बिट मास्क और बिट-शिफ्ट की पूर्ण रूप से आवश्यकता होती है, जिसके लिए अतिरिक्त निर्देशों की आवश्यकता हो सकती है, जबकि विरल प्रतिरूपण के लिए बिट मास्किंग की आवश्यकता नहीं होती है। इस प्रकार से पैक्ड प्रतिरूपण सामान्यतः हार्डवेयर और प्रोसेसर रजिस्टर में बिट क्षेत्र के रूप में पाए जाते हैं,[1] जबकि विरल प्रतिरूपण सामान्यतः सॉफ्टवेयर में या अधिक बाइट्स की चौड़ाई वाले चर (कंप्यूटर विज्ञान) के रूप में पाए जाते हैं, यद्यपि पैक्ड प्रतिरूपण का भी सपोर्ट किया जा सकता है।[2]
दक्षता
अतः अधिकांश कंप्यूटर लैंग्वेज ट्रूथ संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का सपोर्ट करती हैं और सामान्यतः बिटवाइज़ ऑपरेशन का उपयोग करके बाइट पर मात्र निर्देश के साथ स्थितियों के 256 विभिन्न संयोजनों का परीक्षण किया जा सकता है। इस प्रकार से प्रोसेसर डिज़ाइन और समानांतर कंप्यूटिंग में प्रगति का अर्थ है कि बूलियन फ्लैग पर और भी अधिक बूलियन बीजगणित संचालन एसआईएमडी तकनीक का उपयोग करके मात्र निर्देश के साथ किया जा सकता है, जिसे प्रायः प्रोग्रामिंग लैंग्वेजों में आंतरिक फलन के रूप में लागू किया जाता है।[3]
उपयोग
अतः कभी-कभी, कुछ प्रतिबन्धों के ज्ञात होने पर मात्र फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदाहरण के लिए if
) होते हैं जो अत्यधिक जटिल हो सकते हैं। इस प्रकार से जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से प्रारम्भ या संवृत कर दिए जाते हैं, तो सॉफ़्टवेयर परीक्षण प्रतिबन्धों के विभिन्न संयोजनों पर प्रारम्भ हो सकता है - स्वयं चर के अतिरिक्त फ़्लैग के संदर्भ में है। अतः यह प्रसंस्करण को अत्यधिक सरल बना सकता है, और मेमोरी में उनके बाइनरी प्रतिरूपण को प्रतिचित्रित करके निर्णय सारणी को लागू करने की पूर्ण रूप से अनुमति देता है।
यह भी देखें
संदर्भ
- ↑ "सामान्य बिटफ़ील्ड पैकिंग और अनपैकिंग फ़ंक्शन". The Linux Kernel documentation. Retrieved 2021-04-10.
- ↑ "std::vector". cppreference.com. 2021-03-09. Retrieved 2021-04-10.
- ↑ "इंटेल इंट्रिनिक्स गाइड". Intel Developer Zone. Retrieved 2021-04-10.