不大于数的2整数幂的数

  获得不大于数的2整数幂的数。例如, 不大于6的2整数幂的数是4.

 1 #include <bitset>
 2 
 3 using namespace std;
 4 
 5 /*
 6  * 返回不大于num的最大数的2进制数幂次。
 7  */
 8 int GetMaxPos(int num)
 9 {
10     int flag = num & (num - 1);
11 
12     if (flag == 0)
13         flag = num;
14 
15     int pos = 0;
16     while (flag >>= 1) {
17         pos++;
18     }
19 
20     return pos;
21 }
22 
23 int main()
24 {
25     int num = 6;
26 
27     cout << GetMaxPos(num) << endl;
28 
29     return 0;
30 }
原文地址:https://www.cnblogs.com/life91/p/2976755.html