不大于数的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 }

 

posted @ 2013-03-23 10:51  life91  阅读(231)  评论(0编辑  收藏  举报