2的整数次幂

Posted allinoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2的整数次幂相关的知识,希望对你有一定的参考价值。

#特征:
2的整数次幂转化成二进制时,只有最高位是1,其他位都是0
#判断方法:
2的整数次幂用原数值和它自身减1的结果进行按位与运算,即**(m & (m - 1)) == 0**,结果一定为0!由此可以实现快速判断一个数是否为2的整数次幂数。
#求一个数最近的比它大的2的整数次幂数:
将该数最高位向右的位全部设置为1,再用变化后的数字+1即可得到最近的比它大的2的整数次幂数
具体代码实现:

		如果该数不为2的整数次幂数
				m |= m >> 1;
				m |= m >> 2;
				m |= m >> 4;
				m |= m >> 8;
				m |= m >> 16;
				m++;
				cout << m << endl;

仅为参考文章总结记录

以上是关于2的整数次幂的主要内容,如果未能解决你的问题,请参考以下文章

判断一个正整数是否是2的整数次幂

如何判断一个正整数是不是2的整数次幂

如何利用一条简单语句判断一个整数是否为2的整数次幂

2的整数次幂 面试算法

判断一个数是不是是 4 的整数次幂

231. Power of Two 342. Power of Four -- 判断是否为24的整数次幂