बिटमास्क बहुत पुराने हैं। मैं पहले एक का संदर्भ नहीं पा सका हूं, लेकिन वे 8-बिट प्रोसेसर के आगमन से निश्चित रूप से लोकप्रिय थे, और संभवतः 4-बिट प्रोसेसर में भी उपयोग किया जाता था।
बिटमास्क के पीछे का विचार बिटवाइज़ समानता का लाभ उठाना है। एक 8 बिट कंप्यूटर एक ही बिटवाइज़ ऑपरेशन को एक ही बार में 8 बिट्स कर सकता है यदि वे एक ही मूल शब्द में पैक किए गए हैं (जिसका अर्थ है कि यह एक रजिस्टर में फिट बैठता है)।
नाम मास्किंग से आता है, जो उन क्षेत्रों को कवर करने के लिए एक सामान्य दृष्टिकोण है जिनके साथ आप बातचीत नहीं करना चाहते हैं। उदाहरण के लिए, इस स्टैंसिल पर विचार करें कि दीवार के क्षेत्रों को बंद करने के लिए (पैटर्न दिखाने के लिए पेंटिंग के बाद स्टैंसिल को स्थानांतरित किया गया है)
मास्क का उपयोग फोटोग्राफी में भी किया जाता है, जहां वे "स्टैंसिल" के बजाय "चकमा" शब्द से जाते हैं। आप एक क्षेत्र को हल्का करने के लिए मुद्रण के दौरान कुछ प्रकाश को अस्पष्ट करने के लिए एक मुखौटा का उपयोग कर सकते हैं।
इस शब्द का उपयोग सीधे फोटोलिथोग्राफी में किया जाता है, जो कि एकीकृत सर्किट बनाने के लिए उपयोग की जाने वाली तकनीक है। मुखौटा प्रकाश को चिप पर चित्रित फोटोरिस्टिस्ट तक पहुंचने से रोकता है, जो पैटर्न बनाता है जो बाद में चिप पर फेसिंग पैटर्न का नेतृत्व करता है। (नीचे की छवि Intel 8080A प्रोसेसर के लिए मास्क में से एक है , यदि आप उत्सुक हैं)
इसी तरह, बिट मास्किंग में, आप उस शब्द के हिस्सों का चयन कर रहे हैं, जिसे आप ऑपरेट करना चाहते हैं, बाकी सभी बिट्स को मास्किंग करें। नीचे दिए गए उदाहरण में, मैं इनपुट को मास्क करने के लिए "और" ऑपरेशन का उपयोग करता हूं जैसे कि केवल 3 जी, 4 वें और 8 वें बिट शो के माध्यम से। बाकी "नकाबपोश" हैं ताकि वे 0 हैं। मेरे द्वारा उपयोग किया जाने वाला मास्क है 00110001
। मैं इसे #
0 का .
प्रतिनिधित्व करने और 1 का प्रतिनिधित्व करने के साथ नीचे दिखाता हूं क्योंकि यह ऊपर दिए गए भौतिक मुखौटे के समान बिटमास्क की दृश्य उपस्थिति बनाता है, और मैं एक "चयनित बिट्स" पंक्ति दिखाता हूं जो आउटपुट से बिट्स को दिखाता है जो नकाबपोश नहीं थे ( "चयनित बिट्स" वास्तव में एक तार्किक ऑपरेशन नहीं होता है जो होता है ... प्रोसेसर वास्तव में इनपुट और मास्क से आउटपुट में एक चरण में सही हो जाता है, लेकिन मुझे लगता है कि यह दृश्य छवि को स्पष्ट करता है)
Input 10010111
Mask ##..###. (aka 00110001)
-----------------------
(selected) 01 1
Input AND Mask 00010001
जैसा कि मैंने उल्लेख किया है, बिटमैपिंग बहुत पुराना है क्योंकि यह प्रोसेसर की उत्पादकता को नाटकीय रूप से बढ़ाता है। 4 बिट प्रोसेसर पर, यह प्रोसेसर को 4x तेज बना सकता है। एक 8 बिट प्रक्रिया पर, या यह इसे 8x तेज (अकेले बिटकॉइन संचालन पर, निश्चित रूप से) कर सकता है।
इसके लिए एक आकर्षक उपयोग शतरंज इंजन है। शतरंज बोर्ड में 64 वर्ग हैं। आधुनिक इंजन में 64 बिट पूर्णांक हैं। यह भाग्य का एक बहुत सुविधाजनक बिट है, इसलिए शतरंज इंजन अक्सर इसका लाभ उठाते हैं। उनके पास तथाकथित " बिटबोर्ड " हैं जिसमें टुकड़ों के स्थान शामिल हैं। इससे आप सभी प्रकार के अनुकूलन कर सकते हैं, जैसे कि एक ही चरण में सभी मोहरे चाल की तलाश करना।