int log2(int n){ int x = 1; int c = 0; while(true){ if(x >=n) break; ++c; x <<= 1; if(x == 0) break; } return c; } 这个函数求的是2^c = n;左移一次相当于乘以一次2,当左移的值达到n时,则左移的次数就是所求的c