验证一个数是否为4的n次幂
来源:互联网 发布:英国为什么脱欧 知乎 编辑:程序博客网 时间:2024/06/06 03:09
将4的幂次方写成二进制形式后,很容易就会发现有一个特点:
二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了偶数个0就可以了。
4的整数次幂的二进制数都为 (4)100、(16)10000、(64)1000000……
另外,4的幂次方4^n也可以写为2^(2*n),即也可以写为2的幂次方,当然就满足2的幂次方的条件了,即num & num-1==0。
思路:首先用条件num & num-1==0来判断是否为2的幂次方,若不满足,则不是。若满足,在用条件num & 0x55555555来判断,若为真,则这个整数是4的幂次方,否则不是,0x55555555为16进制,二进制为1010101010101010101010101010101。
C#形式:
static bool Check(int x) { if (((x +1) & x) == x) //判断x是否为2的幂次方 { if ((x & 0x55555555) == x) //判断1是否在奇数位置上 { Console.WriteLine(x + "是4的幂次方"); return true; } Console.WriteLine(x + "不是4的幂次方"); return false; } Console.WriteLine(x+"不是4的幂次方"); return false; }
0 0
- 验证一个数是否为4的n次幂
- Power of Three ,判断一个数是否为3的n次幂
- 判断一个数是否是2的N次幂
- 判断一个整数是否为2的n次幂
- 判断一个数是否为2的整数次幂
- 判断一个数是否为2的整数次幂
- 判断一个数是否为2的幂次
- 判断一个整数是否是2的N次幂及一个数是否是偶数
- 判断一个无符号数是否是2的n次幂形式的数
- 整数的二进制数中1的数目,1-N中1的总共个数,如何判断一个数是否为2的整数次幂.
- 判断一个正整数是否是4的n次幂
- C# 判断一个数是否是2的n次幂
- 判断一个整数是否为2的n次幂(算法)
- 判断一个非负整数是否为2的n次幂?-by大彬
- 编程之美---判断一个数是否为2的次幂
- java 如何判断一个数是否为2的整数次幂
- 如何判断一个数是否为2的N次方
- 如何判断一个数是否为2的N次方
- javascript数组去重方法之一
- cronExpression *和?的区别
- 字符编码简明教程
- 信息安全就业前景分析
- PHP长轮询如何实现
- 验证一个数是否为4的n次幂
- 进度
- 非GUI触发jmeter
- thinkphp自定义类
- JESD204B接口与协议
- windows下PHP + Nginx curl访问本地地址超时卡死问题的解决方案
- Handler
- JAVA工程师笔试题(包含实习生 高级工程师)
- Android 主要涉及的安全问题调研