This program shows how to set, clear, toggle, and check bits in a number. It prints the bits before and after each operation for clear understanding.
#include <stdio.h>
// Function to print bits of a 32-bit number
void print_bits(unsigned int number) {
for (int i = 31; i >= 0; i--) {
unsigned int bit = (number >> i) & 1U;
printf("%u", bit);
if (i % 8 == 0 && i != 0) {
printf(" "); // space every byte for readability
}
}
printf("\n");
}
int main() {
unsigned int number = 0b00000000000000000000000000001010; // 10 decimal
printf("Original number bits: ");
print_bits(number);
// Set bit at position 4
number |= (1U << 4);
printf("After setting bit 4: ");
print_bits(number);
// Clear bit at position 1
number &= ~(1U << 1);
printf("After clearing bit 1: ");
print_bits(number);
// Toggle bit at position 3
number ^= (1U << 3);
printf("After toggling bit 3: ");
print_bits(number);
// Check bit at position 2
int bit2 = (number & (1U << 2)) != 0;
printf("Bit at position 2 is: %d\n", bit2);
return 0;
}