fn main() {
let number1: u8 = 13; // 00001101
let number2: u8 = 10; // 00001010
let and_result = number1 & number2; // AND operation
let or_result = number1 | number2; // OR operation
let xor_result = number1 ^ number2; // XOR operation
let not_result = !number1; // NOT operation
let left_shift_result = number1 << 2; // Left shift by 2
let right_shift_result = number1 >> 2; // Right shift by 2
println!("AND result: {:08b} ({})", and_result, and_result);
println!("OR result: {:08b} ({})", or_result, or_result);
println!("XOR result: {:08b} ({})", xor_result, xor_result);
println!("NOT result: {:08b} ({})", not_result, not_result);
println!("Left shift result: {:08b} ({})", left_shift_result, left_shift_result);
println!("Right shift result: {:08b} ({})", right_shift_result, right_shift_result);
}let and_result = number1 & number2;
Perform AND to keep bits on only if both bits are on
let or_result = number1 | number2;
Perform OR to turn bits on if either bit is on
let xor_result = number1 ^ number2;
Perform XOR to turn bits on if exactly one bit is on
let not_result = !number1;
Flip all bits using NOT
let left_shift_result = number1 << 2;
Shift bits left by 2, adding zeros on right
let right_shift_result = number1 >> 2;
Shift bits right by 2, dropping bits on right
AND result: 00001000 (8)
OR result: 00001111 (15)
XOR result: 00000111 (7)
NOT result: 11110010 (242)
Left shift result: 00110100 (52)
Right shift result: 00000011 (3)