using System; public static class Extensions { public static int HighestOneBit(this int number) { return (int)Math.Pow(2, Convert.ToString(number, 2).Length - 1); } } public class Test { public static uint highestOneBit(uint i) { i |= (i >> 1); i |= (i >> 2); i |= (i >> 4); i |= (i >> 8); return i - (i >> 1); } public static void Main() { Console.WriteLine(); Console.WriteLine((-1).ToString("X")); Console.WriteLine((Int32.MinValue).HighestOneBit().ToString("X")); } }