using System; public class Test { public static void Main() { uint v = 0x4dead; // 18-th bit is the highest one set uint r; uint shift; r = (uint)((v > 0xFFFF) ? 1 : 0) << 4; v >>= (int)r; shift = (uint)((v > 0xFF ) ? 1 : 0) << 3; v >>= (int)shift; r |= shift; shift = (uint)((v > 0xF ) ? 1 : 0) << 2; v >>= (int)shift; r |= shift; shift = (uint)((v > 0x3 ) ? 1 : 0) << 1; v >>= (int)shift; r |= shift; r |= (v >> 1); Console.WriteLine(r); } }