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; }