某个数是2的N次方

2014-11-24 01:45:16 · 作者: · 浏览: 0

最近在框架中有一个判断,使用的是位判断,据说会快点,哦哈哈。

结果,给出一个数33554432,我的妈啊,这是2的几次方啊,需要拿着计算器在那边计算吗?。

于是有一个想法,使用Java来判断这个数是N的M次方法

Java代码

/**

* 这里使用位的移动来计算2的N次方法

*

* @param value

* @param shift

* @return

*/

public static String toBinary(int value){

char[] buf = new char[32];

int charPos = 32;

int mask = 1;

do {

int index = value & mask;

buf[--charPos] = digits[index];

value >>>= 1;

} while (value != 0);

return new String(buf, charPos, (32 - charPos));

}

这段代码来自于JDK的Integer.toBinaryString方法