题目描述:
给一个数字 N,判断是否是2的整数次方?
解题方向:可以根据二进制的特点,用消去一法直接得出结果。
消去一法: N--1可以使N的最低位的1为0,所以最低位的1之后的每一位都是0,因此 N &(N--1)(核心)就可以消去最低为的1.
题解思路:由于2的整数次方二进制表示形式只有一个1,所以利用消去1法后,结果一定为0.
代码:
//消去一法解是否是2的整数次方 public static boolean f(int N){ //输入的N不能为0 if((N & (N-1))==0){ return true; }else{ return false; } }
原文地址:https://www.cnblogs.com/songchengyu/p/12657651.html
时间: 2024-10-27 18:56:46