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

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

a & b
Bitwise &(AND) ऑपरेटर

हा ऑपरेटर लॉजिकल (AND) ऑपरेटर सारखाच आहे &, फक्त तो एका अँपरसँडद्वारे दर्शविला जातो, दोन नव्हे:

आणि ते वैयक्तिक बिट्सवर लागू केले जाते. प्रत्येक ऑपरेंडला बिट्सच्या अ‍ॅरेप्रमाणे मानले जाते आणि दोन ऑपरेंडपैकी प्रत्येकाच्या व्या बिटचा iवापर करून निकालाचा th बिट मोजला जातो .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

आणि ते वैयक्तिक बिट्सवर लागू केले जाते. प्रत्येक ऑपरेंडला बिट्सचे अॅरे मानले जाते आणि परिणामाचा ith बिट प्रत्येक दोन ऑपरेंडचा ith बिट वापरून मोजला जातो.

बिटवाइज |(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. बिटवाइज ~(नाही, पूरक) ऑपरेटर

मला वाटते की ते काय करते याचा तुम्ही आधीच अंदाज लावू शकता. हा ऑपरेटर लॉजिकल (NOT) ऑपरेटर सारखाच आहे , परंतु तो tilde! द्वारे दर्शविला जातो , उद्गारवाचक बिंदू नाही:

~a

हा एक युनरी ऑपरेटर आहे, याचा अर्थ ते दोन नव्हे तर एकाच संख्येला लागू होते. हे या सिंगल ऑपरेंडच्या आधी दिसते.

बिटवाइज ~ऑपरेटरचा अर्थ "संख्येचा संबंधित बिट aशून्य असल्यास परिणामी बिट एक आहे आणि त्या संख्येचा संबंधित बिट aएक असल्यास तो शून्य आहे":

~1 = 0
~0 = 1

उदाहरणे:

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

1हा ऑपरेटर फक्त टू असलेले बिट आणि टू 0असलेले बिट बदलतो .01