Bitwise Operators
C ek integer ke bit pattern ka direct access deta hai: | bits set karta hai, & unhe test ya clear karta hai, ^ unhe toggle karta hai, aur << / >> bits ko left ya right shift karte hain. 1 << n sirf bit n set wali ek value produce karta hai — kai flags mein se ek ko ek single integer mein represent karne ka common pattern.
#include <stdio.h>
int main() {
unsigned int flags = 0;
flags |= 1 << 0;
flags |= 1 << 2;
printf("%u\n", flags);
printf("%d\n", (flags & (1 << 2)) != 0);
printf("%d\n", (flags & (1 << 1)) != 0);
return 0;
}5 1 0
flags |= 1 << 0 aur flags |= 1 << 2 bits 0 aur 2 set karte hain, 5 (binary 101) produce karte hue. (flags & (1 << 2)) != 0 phir test karta hai ke bit 2 khaaskar set hai ya nahi, kisi bhi doosre bit se independent — wahi pattern jo operating systems, embedded code, aur network protocols kai boolean flags ko ek single integer mein pack karne ke liye istemal karte hain.
Aage: enums aur typedef — constants ko naam dena aur complex types ko chhote naam dena.
Practice exercise
Ek unsigned int flags ko 0 set karein, phir |= aur (1 << 3) se bit 3 set karein. (flags & (1 << 3)) != 0 istemal kar ke print karein ke bit 3 set hai ya nahi.