Bitwise Operators in C language

#include <stdio.h>

int main() {
    unsigned int a = 5; // 0101 in binary
    unsigned int b = 9; // 1001 in binary
    unsigned int result;

    // Bitwise AND operator
    result = a & b; // 0101 & 1001 = 0001 (1 in decimal)
    printf("Bitwise AND: %u\n", result);

    // Bitwise OR operator
    result = a | b; // 0101 | 1001 = 1101 (13 in decimal)
    printf("Bitwise OR: %u\n", result);

    // Bitwise XOR operator
    result = a ^ b; // 0101 ^ 1001 = 1100 (12 in decimal)
    printf("Bitwise XOR: %u\n", result);

    // Bitwise NOT operator
    result = ~a; // ~0101 = 1010 (complement of 5)
    printf("Bitwise NOT for a: %u\n", result);

    // Bitwise left shift operator
    result = a << 1; // 0101 << 1 = 1010 (10 in decimal)
    printf("Bitwise Left Shift for a: %u\n", result);

    // Bitwise right shift operator
    result = b >> 1; // 1001 >> 1 = 0100 (4 in decimal)
    printf("Bitwise Right Shift for b: %u\n", result);

    return 0;
}