#include <iostream>
#include <bitset>
int main() {
// Step 1: Declare variables
unsigned int num1 = 5; // Binary: 0000 0000 0000 0000 0000 0000 0000 0101
unsigned int num2 = 10; // Binary: 0000 0000 0000 0000 0000 0000 0000 1010
unsigned int result;
// Step 2: Perform bitwise AND operation
result = num1 & num2; // Binary: 0000 0000 0000 0000 0000 0000 0000 0000
// Step 3: Perform bitwise OR operation
result = num1 | num2; // Binary: 0000 0000 0000 0000 0000 0000 0000 1111
// Step 4: Perform bitwise XOR operation
result = num1 ^ num2; // Binary: 0000 0000 0000 0000 0000 0000 0000 1111
// Step 5: Perform bitwise NOT operation
result = ~num1; // Binary: 1111 1111 1111 1111 1111 1111 1111 1010
// Step 6: Left shift operation
result = num1 << 1; // Binary: 0000 0000 0000 0000 0000 0000 0000 1010
// Step 7: Right shift operation
result = num1 >> 1; // Binary: 0000 0000 0000 0000 0000 0000 0000 0010
// Step 8: Use of bitwise AND to check if a specific bit is set
unsigned int bitmask = 0b00000010; // Bitmask to check the 2nd bit
result = num1 & bitmask; // If result is non-zero, the bit is set
return 0;
}