using System;
class BitManipulation {
public static void Main() {
byte number1 = 13; // 00001101
byte number2 = 10; // 00001010
byte andResult = (byte)(number1 & number2); // AND
byte orResult = (byte)(number1 | number2); // OR
byte xorResult = (byte)(number1 ^ number2); // XOR
byte notResult = (byte)(~number1); // NOT
byte leftShiftResult = (byte)(number1 << 2); // Left shift by 2
byte rightShiftResult = (byte)(number1 >> 2); // Right shift by 2
Console.WriteLine("AND result: " + Convert.ToString(andResult, 2).PadLeft(8, '0') + " (" + andResult + ")");
Console.WriteLine("OR result: " + Convert.ToString(orResult, 2).PadLeft(8, '0') + " (" + orResult + ")");
Console.WriteLine("XOR result: " + Convert.ToString(xorResult, 2).PadLeft(8, '0') + " (" + xorResult + ")");
Console.WriteLine("NOT result: " + Convert.ToString(notResult, 2).PadLeft(8, '0') + " (" + notResult + ")");
Console.WriteLine("Left shift result: " + Convert.ToString(leftShiftResult, 2).PadLeft(8, '0') + " (" + leftShiftResult + ")");
Console.WriteLine("Right shift result: " + Convert.ToString(rightShiftResult, 2).PadLeft(8, '0') + " (" + rightShiftResult + ")");
}
}byte andResult = (byte)(number1 & number2);
perform AND to keep bits ON only if both bits are ON
byte orResult = (byte)(number1 | number2);
perform OR to turn bits ON if either bit is ON
byte xorResult = (byte)(number1 ^ number2);
perform XOR to turn bits ON only if bits differ
byte notResult = (byte)(~number1);
flip all bits using NOT
byte leftShiftResult = (byte)(number1 << 2);
shift bits left by 2, adding zeros on right
byte rightShiftResult = (byte)(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)