public static void Main(string[] args)
Console.WriteLine(Convert.ToString(3, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString(3 << 30, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString((3 << 30) >> 5, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString((3 << 30) >> 30, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString(3U, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString(3U << 30, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString((3U << 30) >> 5, 2).PadLeft(32, '0'));
Console.WriteLine(Convert.ToString((3U << 30) >> 30, 2).PadLeft(32, '0'));