您的位置:首页 > 其它

进制转换

2014-11-01 23:13 204 查看
class Binary
{
public static void main(String[] args)
{
//转换成二进制
trans(6,1,1);

//转换成八进制
trans(60,7,3);
//转换成十六进制
trans(60,15,4);
}
//十进制转换成二进制
public static void toBinary(int num)
{
StringBuffer result=new StringBuffer();
while(num>0)
{
result.append(num%2);
num=num/2;
}
System.out.println(result.reverse());
}
//十进制转换成二进制(2)
public static void toBinary2(int num)
{
char[] chs={'0','1'};
char[] result=new char[32];
int pos=result.length-1;
while(num!=0)
{
int temp=num & 1;
result[pos--]=chs[temp];
num=num>>>1;
}
for(int i=pos+1;i<result.length;i++)
{
System.out.print(result[i]+",");
}

}

//十进制转换成十六进制(1)
public static void toHex(int num)
{
StringBuffer result= new StringBuffer();
for(int i=0;i<8;i++)
{
int temp=num & 15;
if((temp-10)>=0)
{
result.append((char)(temp-10+'A'));
}
else
{
result.append(temp);
}
num=num>>4;
}
System.out.println(result.reverse());
}
//十进制转换成十六进制(2)
public static void toHex2(int num)
{
char [] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//StringBuffer result=new StringBuffer();
//字符数组,不定义成整型数组
char [] result=new char[8];
int pos=result.length-1;
while(num!=0)
{
int temp=num&15;
result[pos--]=chs[temp];
num=num>>>4;
}
for(int i=pos+1;i<result.length;i++)
//括号里面要是字符串才行。不能用单引号
System.out.print(result[i]+",");
}
//综合转换
public static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.print("0");
return;
}
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] result=new char[32];
int pos=result.length-1;
while(num!=0)
{
int temp=num&base;
result[pos--]=chs[temp];

num=num>>>offset;
}
for(int i=pos+1;i<result.length;i++)
{
System.out.print(result[i]+",");

}
System.out.println();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: