using System;
class BitManipulation
{
// Set bit at position 'pos' to 1
public static int SetBit(int number, int pos)
{
return number | (1 << pos); // Use OR to set bit
}
// Clear bit at position 'pos' to 0
public static int ClearBit(int number, int pos)
{
return number & ~(1 << pos); // Use AND with NOT mask to clear bit
}
// Toggle bit at position 'pos'
public static int ToggleBit(int number, int pos)
{
return number ^ (1 << pos); // Use XOR to flip bit
}
static void Main()
{
int number = 18; // binary 00010010
int pos = 4;
int setResult = SetBit(number, pos);
Console.WriteLine($"Set bit {pos}: {Convert.ToString(setResult, 2).PadLeft(8, '0')} ({setResult})");
int clearResult = ClearBit(number, pos);
Console.WriteLine($"Clear bit {pos}: {Convert.ToString(clearResult, 2).PadLeft(8, '0')} ({clearResult})");
int toggleResult = ToggleBit(clearResult, pos);
Console.WriteLine($"Toggle bit {pos}: {Convert.ToString(toggleResult, 2).PadLeft(8, '0')} ({toggleResult})");
}
}return number | (1 << pos);
Set bit by ORing number with mask having 1 at position pos
return number & ~(1 << pos);
Clear bit by ANDing number with inverted mask having 0 at position pos
return number ^ (1 << pos);
Toggle bit by XORing number with mask having 1 at position pos
int setResult = SetBit(number, pos);
Apply set bit operation
int clearResult = ClearBit(number, pos);
Apply clear bit operation
int toggleResult = ToggleBit(clearResult, pos);
Apply toggle bit operation on cleared number
Set bit 4: 00010010 (18)
Clear bit 4: 00000010 (2)
Toggle bit 4: 00010010 (18)