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

 

你可能感兴趣的:(不大于数的2整数幂的数)