public static int ComputeLog( int value ) { int i; i = 0; /* Error! */ if ( value == 0 ) return -1; for ( ; ; ) { if ( ( value & 1 ) != 0 ) { /* Error! */ if ( value != 1 ) return -1; return i; } value = value >> 1; i++; } }