判断一个整数是否是2的阶次方数
2017-02-10 10:57
393 查看
转自 http://blog.csdn.net/sanqima/article/details/35283683
2的阶次方数用二进制表示为:1开头,其后是若干个0
当我们需要判断一个整数是否是2的阶次方时,只需要将该整数减去1后,和该整数做位于(&)运算
若结果为0,则成立,否则就不是
判断一个整数是否是2的阶次方数
原理:2的阶次方数用二进制表示为:1开头,其后是若干个0
当我们需要判断一个整数是否是2的阶次方时,只需要将该整数减去1后,和该整数做位于(&)运算
若结果为0,则成立,否则就不是
public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(true){ System.out.print("\n请输入一个整数(0退出):"); int input = scan.nextInt(); if(input == 0){ System.out.println("已退出"); break; } if((input & (input-1))==0 && input != 0){ System.out.print(" 是2的阶次方数"); }else{ System.out.print(" 不是2的阶次方数"); } } scan.close(); }
相关文章推荐
- c语言==判断一个数是否为2的整数次方【不使用循环】(23)
- 判断一个整数是否是n^m次方类型数据,并比较乘法和除法性能差异
- 判断一个数是否是4的整数次方
- c语言==判断一个数是否为2的整数次方【不使用循环】
- 【C#】一个方法判断整数是否是2的N次方
- 判断一个整数x是否是2的N次方。
- 判断一个整数是否是2的N次方【转载】
- 判断一个数是否是2的整数次方
- 判断一个整数是否是2的n次方
- 1.求一个整数的二进制中1的个数 2.判断一个数是否是2的n次方
- 判断一个long类型正整数是否是2的n次方——华为笔试归来
- 判断一个整数是否是奇数(C#版)
- C#判断一个字符串是否为整数
- 移位运算实际应用——判断整数N是否为2的阶次方
- 输入一个整数n,判断这个数是否质数
- 如何快速判断一个整数是否可以整除另一个整数的理论分析
- 判断任意一个整数是否素数
- 一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素
- 判断一个整数是否平方数
- 判断一个整数是否是奇数(C#版)