找到大于一个正整数n的最小2的次幂数
引
今天进行了招行提前批的视频面试,写编程题的时候完全没法下手,我觉得很大一部分原因是平时刷题太少,而且记录总结太少,于是在这里做一个刷题记录,希望等到秋招能找到理想的工作。
以今天遇到的面试题开始吧…
题目:找到大于一个正整数n的最小2的次幂数
int solve (int num) {
int base = INT_MIN;
if (num >= base) {
base = num;
base |= (base >> 1); //把base最高位的下一位置1
base |= (base >> 2);
base |= (base >> 4);
base |= (base >> 8);
base |= (base >> 16);
base++;
if (base < 0)
base >>= 1;
}
return base;
}