Java 提供位运算的操作,对于十进制的转换,采用位运算可大大提高转换速度
定义全局变量
public final static char digitals[]={
'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
调用函数Transfer时,shift为1代表转换为二进制,为3代表转换为八进制,为4代表转换为十六进制
public static String Transfer(int num,int shift)
{
int radix=1<<shift;
int mask=radix-1;
char buf[]=new char[32];
int pos=32;
do
{
int temp=num & mask;
buf[--pos]=digitals[num & mask];
num>>=shift;
}while(num>0);
return new String(buf,pos,32-pos);
}
附二进制转十进制
/**
* 二进制转十进制
* @param binarystr
* @param shift
* @return
*/
public static long BinaryToShi(String binarystr)
{
long temp=0;
for(int i=binarystr.length()-1;i>=0;i--)
temp+=(binarystr.charAt(binarystr.length()-1-i)-48)<<i;
return temp;
}