c++ में 3 बिटवाइज़ ऑपरेटर उपलब्ध हैं। ये बिटवाइज़ AND(&), बिटवाइज़ OR(|) और बिटवाइज़ XOR(^) हैं।
बिटवाइज AND ऑपरेटर (&) पहले ऑपरेंड के प्रत्येक बिट की तुलना दूसरे ऑपरेंड के संगत बिट से करता है। यदि दोनों बिट्स 1 हैं, तो संबंधित परिणाम बिट को 1 पर सेट किया जाता है। अन्यथा, संबंधित परिणाम बिट 0 पर सेट होता है। बिटवाइज़ समावेशी और ऑपरेटर के दोनों ऑपरेंड अभिन्न प्रकार के होने चाहिए। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a & b ) << endl; }
आउटपुट
यह आउटपुट देता है -
0
बिटवाइज OR ऑपरेटर (|) पहले ऑपरेंड के प्रत्येक बिट की तुलना दूसरे ऑपरेंड के संगत बिट से करता है। यदि या तो बिट 1 है, तो संबंधित परिणाम बिट को 1 पर सेट किया जाता है। अन्यथा, संबंधित परिणाम बिट को 0 पर सेट किया जाता है। बिटवाइज़ समावेशी या ऑपरेटर के दोनों ऑपरेंड अभिन्न प्रकार के होने चाहिए। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; int main() { unsigned short a = 0x5555; // pattern 0101 ... unsigned short b = 0xAAAA; // pattern 1010 ... cout << hex << ( a | b ) << endl; }
आउटपुट
यह आउटपुट देता है -
ffff
बिटवाइज एक्सक्लूसिव OR ऑपरेटर (^) इसके पहले ऑपरेंड के प्रत्येक बिट की तुलना इसके दूसरे ऑपरेंड के संगत बिट से करता है। यदि एक बिट 0 है और दूसरा बिट 1 है, तो संबंधित परिणाम बिट 1 पर सेट है। अन्यथा, संबंधित परिणाम बिट 0 पर सेट है। बिटवाइज़ एक्सक्लूसिव या ऑपरेटर के दोनों ऑपरेंड अभिन्न प्रकार के होने चाहिए। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; int main() { short a = 0x5555; // pattern 0101 ... unsigned short b = 0xFFFF; // pattern 1111 ... cout << hex << ( a ^ b ) << endl; }
आउटपुट
यह आउटपुट देता है -
aaaa
जो पैटर्न 1010 का प्रतिनिधित्व करता है...