某个数是2的N次方
最近在框架中有一个判断,使用的是位判断,据说会快点,哦哈哈。
结果,给出一个数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方法
补充:软件开发 , Java ,