बूलियन फ्लैग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{see|Flag (computing)}}
{{see|फ़्लैग (कंप्यूटिंग)}}
[[कंप्यूटर विज्ञान]] में बूलियन फ्लैग, सत्य बिट या सत्य फ्लैग एक ऐसा [[बूलियन मान]] है जिसे या अधिक बिट्स के रूप में दर्शाया जाता है, जो दो संभावित मानों के साथ अवस्था चर को एन्कोड करता है।
[[कंप्यूटर विज्ञान]] में '''बूलियन फ्लैग''', '''ट्रूथ बिट''' या '''ट्रूथ फ्लैग''' एक ऐसा [[बूलियन मान]] है जिसे या अधिक बिट्स के रूप में दर्शाया जाता है, जो दो संभावित मानों के साथ अवस्था चर को एन्कोड करता है।


==मेमोरी उपयोग==
==मेमोरी उपयोग==
एक एकल [[बाइट]] में प्रत्येक बिट पर बूलियन फ्लैग को मैप करके 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>
इस प्रकार से एक एकल [[बाइट]] में प्रत्येक बिट पर बूलियन फ्लैग को प्रतिचित्रित करके 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>s) जो काफी जटिल हो सकता है। जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से चालू या बंद कर दिए जाते हैं, तो [[सॉफ़्टवेयर परीक्षण]] शर्तों के विभिन्न संयोजनों पर शुरू हो सकता है - स्वयं चर के बजाय फ़्लैग के संदर्भ में। यह प्रसंस्करण को काफी सरल बना सकता है और मेमोरी में उनके बाइनरी प्रतिरूपण को मैप करके [[निर्णय तालिका]]ओं को लागू करने की अनुमति देता है।
अतः कभी-कभी, कुछ प्रतिबन्धों के ज्ञात होने पर मात्र फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदाहरण के लिए <code>if</code>) ते हैं जो अत्यधिक जटिल हो सकते हैं। इस प्रकार से जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से प्रारम्भ या संवृत कर दिए जाते हैं, तो [[सॉफ़्टवेयर परीक्षण]] प्रतिबन्धों के विभिन्न संयोजनों पर प्रारम्भ हो सकता है - स्वयं चर के अतिरिक्त फ़्लैग के संदर्भ में है। अतः यह प्रसंस्करण को अत्यधिक सरल बना सकता है, और मेमोरी में उनके बाइनरी प्रतिरूपण को प्रतिचित्रित करके [[निर्णय तालिका|निर्णय सारणी]] को लागू करने की अनुमति देता है।


==यह भी देखें==
==यह भी देखें==
*[[बूलियन फ़ंक्शन]]
*[[बूलियन फ़ंक्शन|बूलियन फलन]]


==संदर्भ==
==संदर्भ==

Revision as of 11:14, 6 August 2023

कंप्यूटर विज्ञान में बूलियन फ्लैग, ट्रूथ बिट या ट्रूथ फ्लैग एक ऐसा बूलियन मान है जिसे या अधिक बिट्स के रूप में दर्शाया जाता है, जो दो संभावित मानों के साथ अवस्था चर को एन्कोड करता है।

मेमोरी उपयोग

इस प्रकार से एक एकल बाइट में प्रत्येक बिट पर बूलियन फ्लैग को प्रतिचित्रित करके 8 अलग-अलग बूलियन फ्लैग सम्मिलित हो सकते हैं, जिससे यह डेटा भंडारण का बहुत ही मितव्ययी और संहत विधि बन जाती है। अतः इसे पैक्ड प्रतिरूपण या बिट-पैकिंग के रूप में जाना जाता है, और प्रति बाइट मात्र बूलियन फ्लैग के साथ विपरीत एन्कोडिंग को विरल प्रतिरूपण के रूप में जाना जाता है। बाइट-एड्रेसेबल मेमोरी के लिए पैक किए गए प्रतिरूपण को प्रत्येक बाइट में अलग-अलग फ्लैग तक पहुंचने के लिए बिट मास्क और बिट-शिफ्ट की आवश्यकता होती है, जिसके लिए अतिरिक्त निर्देशों की आवश्यकता हो सकती है, जबकि विरल प्रतिरूपण के लिए बिट मास्किंग की आवश्यकता नहीं होती है। इस प्रकार से पैक्ड प्रतिरूपण सामान्यतः हार्डवेयर और प्रोसेसर रजिस्टर में बिट क्षेत्र के रूप में पाए जाते हैं,[1] जबकि विरल प्रतिरूपण सामान्यतः सॉफ्टवेयर में या अधिक बाइट्स की चौड़ाई वाले चर (कंप्यूटर विज्ञान) के रूप में पाए जाते हैं, यद्यपि पैक्ड प्रतिरूपण का भी सपोर्ट किया जा सकता है।[2]

दक्षता

अतः अधिकांश कंप्यूटर लैंग्वेज ट्रूथ संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का सपोर्ट करती हैं और सामान्यतः बिटवाइज़ ऑपरेशन का उपयोग करके बाइट पर मात्र निर्देश के साथ स्थितियों के 256 विभिन्न संयोजनों का परीक्षण किया जा सकता है। इस प्रकार से प्रोसेसर डिज़ाइन और समानांतर कंप्यूटिंग में प्रगति का अर्थ है कि बूलियन फ्लैग पर और भी अधिक बूलियन बीजगणित संचालन एसआईएमडी तकनीक का उपयोग करके मात्र निर्देश के साथ किया जा सकता है, जिसे प्रायः प्रोग्रामिंग लैंग्वेजों में आंतरिक फलन के रूप में लागू किया जाता है।[3]

उपयोग

अतः कभी-कभी, कुछ प्रतिबन्धों के ज्ञात होने पर मात्र फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदाहरण के लिए if) ते हैं जो अत्यधिक जटिल हो सकते हैं। इस प्रकार से जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से प्रारम्भ या संवृत कर दिए जाते हैं, तो सॉफ़्टवेयर परीक्षण प्रतिबन्धों के विभिन्न संयोजनों पर प्रारम्भ हो सकता है - स्वयं चर के अतिरिक्त फ़्लैग के संदर्भ में है। अतः यह प्रसंस्करण को अत्यधिक सरल बना सकता है, और मेमोरी में उनके बाइनरी प्रतिरूपण को प्रतिचित्रित करके निर्णय सारणी को लागू करने की अनुमति देता है।

यह भी देखें

संदर्भ

  1. "सामान्य बिटफ़ील्ड पैकिंग और अनपैकिंग फ़ंक्शन". The Linux Kernel documentation. Retrieved 2021-04-10.
  2. "std::vector". cppreference.com. 2021-03-09. Retrieved 2021-04-10.
  3. "इंटेल इंट्रिनिक्स गाइड". Intel Developer Zone. Retrieved 2021-04-10.