bitwise operators

Certainly.

#include <stdio.h>

void printBinary(int num) {
    for (int i = 31; i >= 0; i--) {
        printf("%d", (num >> i) & 1);
        if (i % 8 == 0)
            printf(" ");
    }
    printf("\n");
}

int main() {
    int a = 5;  // 0000 0000 0000 0000 0000 0000 0000 0101
    int b = 3;  // 0000 0000 0000 0000 0000 0000 0000 0011

    // Bitwise AND
    int resultAnd = a & b;
    printf("Bitwise AND: ");
    printBinary(resultAnd);

    // Bitwise OR
    int resultOr = a | b;
    printf("Bitwise OR:  ");
    printBinary(resultOr);

    // Bitwise XOR
    int resultXor = a ^ b;
    printf("Bitwise XOR: ");
    printBinary(resultXor);

    // Bitwise NOT
    int resultNotA = ~a;
    printf("Bitwise NOT (A): ");
    printBinary(resultNotA);

    int resultNotB = ~b;
    printf("Bitwise NOT (B): ");
    printBinary(resultNotB);

    // Left shift
    int resultLeftShift = a << 1;
    printf("Left Shift (A << 1): ");
    printBinary(resultLeftShift);

    // Right shift
    int resultRightShift = a >> 1;
    printf("Right Shift (A >> 1): ");
    printBinary(resultRightShift);

    return 0;
}