原理:
2的整数次幂且奇数位置1的数为4分整数次幂,此算法可以扩展到求(2^n)的整数次幂,对于8的整数次幂,只需要将N-2改为N-3即可,对于16的整数次幂,需要将mask<30>改成mask<28>并将N-2改成N-4.也就是,对于(2^n)的整数次幂,我们只需要改两个地方
1.将mask<30>中的30改成32位整形中(2^n)最大的幂二进制表示中最高有效位的位置
2.将N-2改成N-n
本文介绍了一种用于判断一个数是否为4的整数次幂的高效算法,并提供了详细的实现原理及C++代码示例。该算法通过位操作判断输入是否符合4的幂的特征。
原理:
2的整数次幂且奇数位置1的数为4分整数次幂,此算法可以扩展到求(2^n)的整数次幂,对于8的整数次幂,只需要将N-2改为N-3即可,对于16的整数次幂,需要将mask<30>改成mask<28>并将N-2改成N-4.也就是,对于(2^n)的整数次幂,我们只需要改两个地方
1.将mask<30>中的30改成32位整形中(2^n)最大的幂二进制表示中最高有效位的位置
2.将N-2改成N-n

被折叠的 条评论
为什么被折叠?