बूलियन फ्लैग: Difference between revisions
m (Deepak moved page बूलियन झंडा to बूलियन फ्लैग without leaving a redirect) |
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> | ||
==दक्षता== | ==दक्षता== | ||
अधिकांश [[कंप्यूटर भाषा]]एं सत्य संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का समर्थन करती हैं और आमतौर पर [[बिटवाइज़ ऑपरेशन]] का उपयोग करके | अधिकांश [[कंप्यूटर भाषा]]एं सत्य संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का समर्थन करती हैं और आमतौर पर [[बिटवाइज़ ऑपरेशन]] का उपयोग करके बाइट पर केवल निर्देश के साथ स्थितियों के 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 22:59, 5 August 2023
कंप्यूटर विज्ञान में बूलियन ध्वज, सत्य बिट या सत्य ध्वज बूलियन मान है जिसे या अधिक बिट्स के रूप में दर्शाया जाता है, जो दो संभावित मानों के साथ राज्य चर को एन्कोड करता है।
मेमोरी उपयोग
एक एकल बाइट में प्रत्येक बिट पर बूलियन ध्वज को मैप करके 8 अलग-अलग बूलियन झंडे शामिल हो सकते हैं, जिससे यह डेटा भंडारण का बहुत ही किफायती और सघन तरीका बन जाता है। इसे पैक्ड प्रतिनिधित्व या बिट-पैकिंग के रूप में जाना जाता है, और प्रति बाइट केवल बूलियन ध्वज के साथ विपरीत एन्कोडिंग को विरल प्रतिनिधित्व के रूप में जाना जाता है। बाइट संबोधन | बाइट-एड्रेसेबल मेमोरी के लिए पैक किए गए प्रतिनिधित्व को प्रत्येक बाइट में अलग-अलग झंडे तक पहुंचने के लिए बिट मास्क और बिट-शिफ्ट की आवश्यकता होती है, जिसके लिए अतिरिक्त निर्देशों की आवश्यकता हो सकती है, जबकि विरल प्रतिनिधित्व के लिए बिट मास्किंग की आवश्यकता नहीं होती है। पैक्ड अभ्यावेदन आमतौर पर हार्डवेयर और प्रोसेसर रजिस्टर में बिट फ़ील्ड के रूप में पाए जाते हैं[1] जबकि विरल निरूपण आमतौर पर सॉफ्टवेयर में या अधिक बाइट्स की चौड़ाई वाले वेरिएबल (कंप्यूटर विज्ञान) के रूप में पाए जाते हैं, हालांकि पैक्ड अभ्यावेदन का भी समर्थन किया जा सकता है।[2]
दक्षता
अधिकांश कंप्यूटर भाषाएं सत्य संकेतक के रूप में उपयोग के लिए संयोजन में एकल या एकाधिक बिट्स की सेटिंग और परीक्षण का समर्थन करती हैं और आमतौर पर बिटवाइज़ ऑपरेशन का उपयोग करके बाइट पर केवल निर्देश के साथ स्थितियों के 256 विभिन्न संयोजनों का परीक्षण किया जा सकता है। प्रोसेसर डिज़ाइन और समानांतर कंप्यूटिंग में प्रगति का मतलब है कि बूलियन झंडे पर और भी अधिक बूलियन बीजगणित संचालन SIMD तकनीक का उपयोग करके केवल निर्देश के साथ किया जा सकता है, जिसे अक्सर प्रोग्रामिंग भाषाओं में आंतरिक फ़ंक्शन के रूप में लागू किया जाता है।[3]
उपयोग
कभी-कभी, कुछ शर्तों का पता चलने पर केवल फ़्लैग सेट करने के लिए प्रोग्राम लिखे जाते हैं, न कि एकाधिक नेस्टेड कंडिशनल (प्रोग्रामिंग) (उदा.) if
s) जो काफी जटिल हो सकता है। जब सभी स्थितियों का परीक्षण कर लिया जाता है और सभी फ़्लैग उचित रूप से चालू या बंद कर दिए जाते हैं, तो सॉफ़्टवेयर परीक्षण शर्तों के विभिन्न संयोजनों पर शुरू हो सकता है - स्वयं चर के बजाय फ़्लैग के संदर्भ में। यह प्रसंस्करण को काफी सरल बना सकता है और मेमोरी में उनके बाइनरी अभ्यावेदन को मैप करके निर्णय तालिकाओं को लागू करने की अनुमति देता है।
यह भी देखें
संदर्भ
- ↑ "सामान्य बिटफ़ील्ड पैकिंग और अनपैकिंग फ़ंक्शन". 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.