C++ में एकल बिट को कैसे सेट, रीसेट और टॉगल करें?
सभी को नमस्कार! मैं एक शुरुआती C++ डेवलपर हूँ और बिट्स के साथ काम करते समय एक समस्या का सामना कर रहा हूँ। मुझे एक पूर्णांक में अलग-अलग बिट्स को मैनेज करने की आवश्यकता है, लेकिन मैं समझ नहीं पा रहा हूँ कि इसे सही तरीके से कैसे किया जाए।
मेरे पास एक वेरिएबल uint8_t flags = 0b00000000; है। मैं चाहता हूँ:
- तीसरा बिट सेट करें (इसे 1 बनाएं)
- पाँचवाँ बिट रीसेट करें (इसे 0 बनाएं)
- दूसरा बिट टॉगल करें (इसकी वैल्यू इन्वर्ट करें)
मैंने ऐसा कोड लिखने की कोशिश की:
uint8_t flags = 0b00000000;
// तीसरा बिट सेट करें
flags = flags | 3; // लेकिन यह काम नहीं करता
// पाँचवाँ बिट रीसेट करें
flags = flags & 5; // यह भी सही नहीं है
// दूसरा बिट टॉगल करें
flags = flags ^ 2; // लगता है काम करता है, लेकिन निश्चित नहीं
समस्या यह है कि मैं समझ नहीं पा रहा हूँ कि बिट नंबर को सही तरीके से कैसे निर्दिष्ट किया जाए। जब मैं flags | 3 लिखता हूँ, तो मैंने सोचा कि यह तीसरा बिट सेट करेगा, लेकिन जाहिर है, यह ऐसे काम नहीं करता। मैंने बिट मास्क के बारे में पढ़ा, लेकिन उनमें उलझ गया।
कृपया मुझे बताएं,