public static void Main()
Console.Write("\nEnter n : ");
while (!uint.TryParse(Console.ReadLine(), out number)) Console.WriteLine("\nThis is not a valid input for uint number!\n\n");
Console.Write("\nEnter p ");
while (!int.TryParse(Console.ReadLine(), out p) || p < 0 || p > 31) Console.WriteLine("\nOut of range!\n\n");
Console.Write("\nEnter q : ");
while (!int.TryParse(Console.ReadLine(), out q) || q < 0 || q > 31) Console.WriteLine("\nTOut of range!\n\n");
Console.WriteLine("\nEnter k = " + maxValueOfK + " !\n");
while (!int.TryParse(Console.ReadLine(), out k) || p + k > 32 || q + k > 32) Console.WriteLine("\nOut of range!\n\n");
bool overlap = (p < q && p + k >= q) || (q < p && q + k >= p);
Console.WriteLine("\nOverlapping !\n\n");
for (int i = 0; i <= k - 1; i++)
int bitPValue = (int)(number & maskP) >> p;
int bitQValue = (int)(number & maskQ) >> q;
Console.WriteLine("\nResult : \n\n" + number + " \n\n\n");