关于判断一个数N是不是2的n 次幂我想了两个办法:
方法一(即笨办法):
思路:将N用2去循环试除,一直除到1为止,如果出现除不尽的情况,就不是2的n次方。
代码:





























分析:这个方法又是除法,又是余数,效率太低了。
方法二:将N与(N-1)进行按位与运算,结果为0,则N 为2的n 次幂,否则不是。
代码:

















分析:只用一个 !(n & (n - 1)) & !!n 作判断,效率高。
关于判断一个数N是不是2的n 次幂我想了两个办法:
方法一(即笨办法):
思路:将N用2去循环试除,一直除到1为止,如果出现除不尽的情况,就不是2的n次方。
代码:
分析:这个方法又是除法,又是余数,效率太低了。
方法二:将N与(N-1)进行按位与运算,结果为0,则N 为2的n 次幂,否则不是。
代码:
分析:只用一个 !(n & (n - 1)) & !!n 作判断,效率高。