पाठ 34 / 36
बिटवाइज़ ऑपरेटर्स और बिट फ्लैग्स
व्यक्तिगत बिट्स पर सीधे काम करें।
छह बिटवाइज़ ऑपरेटर
& AND, | OR, ^ XOR, ~ NOT (हर बिट पलटता है), << लेफ्ट शिफ्ट (हर शिफ्ट में 2 से गुणा), >> राइट शिफ्ट (हर शिफ्ट में 2 से भाग)।
बिट सेट, क्लियर, टॉगल, जाँचें
ये चार पैटर्न लगभग हर बिट-फ्लैग काम को कवर करते हैं।
unsigned int flags = 0;
flags |= (1 << 2); // set bit 2
flags &= ~(1 << 2); // clear bit 2
flags ^= (1 << 2); // toggle bit 2
if (flags & (1 << 2)) {
printf("bit 2 is set\n");
}बिट फ्लैग क्यों?
कई बूलियन विकल्पों को एक इंटीजर में पैक करना (हर बिट = एक ऑन/ऑफ फ्लैग) मेमोरी बचाता है और एम्बेडेड सिस्टम, परमिशन सिस्टम और हार्डवेयर रजिस्टर में आम है।
त्वरित जाँच: कौन-सा ऑपरेटर किसी मान की हर बिट पलटता है?
- ~ (NOT)
- ^ (XOR)
- & (AND)
Answer
~ (NOT) — बिटवाइज़ NOT (~) अपने operand की हर बिट उलट देता है।