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

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


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


==यह भी देखें==
==यह भी देखें==

Revision as of 10:20, 6 August 2023

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

मेमोरी उपयोग

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

दक्षता

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

उपयोग

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

यह भी देखें

संदर्भ

  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.