1. बिटवाइज़ &ऑपरेटर

हमने पहले कहा था कि सभी डेटा को बाइनरी प्रतिनिधित्व में मेमोरी में संग्रहीत किया जाता है। तो काफी समय पहले, प्रोग्रामर बाइनरी नंबरों के साथ काम करने के लिए बहुत सारे दिलचस्प तरीके लेकर आए थे। उदाहरण के लिए, जावा में तार्किक ऑपरेटर हैं जो किसी संख्या के द्विआधारी प्रतिनिधित्व के बिट्स पर काम करते हैं: &(AND), | (OR), ~(NOT या पूरक) और ^(XOR - अनन्य या)।

a & b
बिटवाइज़ &(और) ऑपरेटर

यह ऑपरेटर तार्किक (AND) ऑपरेटर के समान है &, केवल इसे एक एम्परसेंड द्वारा निरूपित किया जाता है, दो नहीं:

और इसे अलग-अलग बिट्स पर लागू किया जाता है। प्रत्येक ऑपरेंड को बिट्स की एक सरणी के रूप में माना जाता है, और iपरिणाम के वें बिट की गणना iदो ऑपरेंडों में से प्रत्येक के वें बिट का उपयोग करके की जाती है।

परिणाम के पहले बिट की गणना संख्या के पहले बिट a और संख्या के पहले बिट के आधार पर bकी जाएगी, दूसरा बिट - संख्या के दूसरे बिट a और संख्या के दूसरे बिट के आधार पर b, आदि ।

( &AND) ऑपरेटर का अर्थ है "परिणामस्वरूप बिट केवल एक के बराबर होता है यदि संख्या का संगत बिट aएक के बराबर होता है तो ANDसंख्या का संगत बिट bएक के बराबर होता है":

1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

उदाहरण:

उदाहरण परिणाम
0b0011 & 0b1010
0b0010
0b1111 & 0b0000
0b0000
0b1010 & 0b0101
0b0000
0b1111 & 0b1010
0b1010

2. बिटवाइज़ |ऑपरेटर

यह ऑपरेटर लॉजिकल (OR) ऑपरेटर के समान है |, केवल इसे एक लंबवत रेखा से दर्शाया जाता है, दो नहीं:

a | b

और इसे अलग-अलग बिट्स पर लागू किया जाता है। प्रत्येक ऑपरेंड को बिट्स की एक सरणी के रूप में माना जाता है, और परिणाम के iवें बिट की गणना दो ऑपरेंडों में से प्रत्येक के iवें बिट का उपयोग करके की जाती है।

बिटवाइज़ |(OR) ऑपरेटर का अर्थ है "परिणामी बिट एक के बराबर है यदि संख्या का संगत बिट aएक के बराबर है तो ORसंख्या का संगत बिट bएक के बराबर है":

1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

उदाहरण:

उदाहरण परिणाम
0b0011 | 0b1010
0b1011
0b1110 | 0b0000
0b1110
0b1010 | 0b0101
0b1111
0b1111 | 0b1010
0b1111

केवल जब दोनों संख्याओं के संबंधित बिट (समान स्थिति पर बिट्स) शून्य होते हैं तो परिणाम का संगत बिट शून्य के बराबर होता है।



3. बिटवाइज़ ^(XOR या "एक्सक्लूसिव या") ऑपरेटर

ऑपरेटर XOR, जिसे विशेष रूप से उच्चारित किया जाता है या^ , प्रतीक द्वारा निरूपित किया जाता है । इसे कीबोर्ड पर दर्ज करने के लिए, Shift + 6 दबाएं (अंग्रेज़ी कीबोर्ड लेआउट पर)।

a ^ b

यह ऑपरेटर कुछ हद तक ऑपरेटर के समान है OR, जिसमें इसका एक समान नाम है:XOR

बिटवाइज़ ^(XOR) ऑपरेटर का अर्थ है "परिणामी बिट एक के बराबर है यदि संख्या का संबंधित बिट aएक के बराबर है तो ORसंख्या का संबंधित बिट bएक के बराबर है लेकिन दोनों एक ही समय में नहीं है":

1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

उदाहरण:

उदाहरण परिणाम
0b0011 ^ 0b1010
0b1001
0b1110 ^ 0b0000
0b1110
0b1010 ^ 0b0101
0b1111
0b1111 ^ 0b1010
0b0101

केवल जब दोनों संख्याओं के संगत बिट (एक ही स्थान पर बिट) भिन्न होते हैं , तो परिणाम का संगत बिट एक के बराबर होता है । यदि बिट समान हैं , तो परिणामी बिट शून्य के बराबर है ।



4. बिटवाइज़ ~(नहीं, पूरक) ऑपरेटर

मुझे लगता है कि आप पहले ही अनुमान लगा सकते हैं कि यह क्या करता है। यह ऑपरेटर तार्किक (नहीं) ऑपरेटर के समान है !, लेकिन इसे टिल्ड द्वारा दर्शाया गया है , न कि विस्मयादिबोधक बिंदु:

~a

यह एक यूनरी ऑपरेटर है, जिसका अर्थ है कि यह एक नंबर पर लागू होता है, दो पर नहीं। यह इस सिंगल ऑपरेंड से पहले दिखाई देता है।

बिटवाइज़ ~ऑपरेटर का अर्थ है "परिणामी बिट एक है यदि संख्या का संबंधित बिट aशून्य है, और यह शून्य है यदि संख्या का संबंधित बिट aएक है":

~1 = 0
~0 = 1

उदाहरण:

उदाहरण परिणाम
~0b0011
0b1100
~0b0000
0b1111
~0b0101
0b1010
~0b1111
0b0000

यह ऑपरेटर केवल उस बिट को बदलता है जो हैं 1और 0बिट्स जो 0हैं 1