public static int LogBase2(int value)
{
//note: from stack overflow, URL forgotten.
int log = 31;
while (log >= 0)
{
uint mask = ((uint)1 << log);
if ((mask & value) != 0)
return log;
log--;
}
return -1;
}