C#请写出代码判断一个整数是不是2的幂次方
来源:互联网 发布:linux进程间通讯机制 编辑:程序博客网 时间:2024/06/04 19:20
思路一:通过递归 a/2计算
public static bool Judge(float a) { if (a == 1) return true; if (a < 1) return false; return Judge(a / 2); }
思路二:通过循环除二
public static void Judge01(int a) { int count = 1; while(a>=0) { if(2==a) { Console.WriteLine(true); break; } if(0==a%2) { a /= 2; count++; } else{ Console.WriteLine(false); break; } } }思路三:一个整数可以转化为二进制(例为4=100,其他位为零)这个1在最高位,因此我们可以让这个数的二进制和0x01做 “与” 操作
整数的二进制在向右移位的过程中,我们会把最后一位直接丢弃。因此,需要判断最后一位是否为1,而“与”操作可以达到目的。可以把这个八位的数字与00000001进行“与”操作。如果结果为1,则表示当前八位数的最后一位为1,否则为0。
public static void JudgeO2(int a) { /*例如:a=23 * 10111 23 count+1 * 1011 11 count+1 * 101 5 count+1 * 10 2 count+0 * 1 1 count+1 * count=4 false * 例如:a=32 * 100000 32 count+0; * 10000 16 count+0; * ..... * 1 1 count+1 * count=1 true */ int count = 0; while(a>0) { count += a & 0x01; a >>= 1; } if(count<2) { Console.WriteLine(true); } else Console.WriteLine(false); }
阅读全文
0 0
- C#请写出代码判断一个整数是不是2的幂次方
- c语言:判断一个整数是不是2的整数次方
- 判断一个整数是不是2的阶次方数
- 判断一个整数是不是2的阶次方数
- 判断一个数字是不是2的整数次方
- C++算法之 一句话判断一个整数是不是2 的整数次方
- 用一条语句判断一个整数是不是2的整数次方
- 判断一个整数是不是2的幂
- 判断一个整数是不是2的整数幂
- 判断一个数是不是2的n次方
- 判断一个无符号整型,是不是2的N次方
- 怎么判断一个数是不是2的N次方
- 【java】判断一个数是不是2的N次方
- 判断一个数是不是2的n次方
- 【c语言】判断一个数是不是2的n次方
- 【java】判断一个数是不是2的N次方
- 怎么判断一个数是不是2的n次方
- 如何快速判断一个数是不是2的n次方
- java通过JDBC链接SQLServer2017
- 使用DetachedCriteria 模糊查询中值为null时的情况
- mysql数据库数据类型之日期时间型
- java动态代理机制
- -bash: ls: command not found
- C#请写出代码判断一个整数是不是2的幂次方
- 习题6(6.15)
- JavaSpark-数据读存-JSON
- openssl 对称加密算法enc命令详解
- K-中心点PAM实例
- ehcache 让内容一直持久化在磁盘,防止异常丢失
- java反射机制
- vSAN快讯
- leetcode--19. Remove Nth Node From End of List