Java十进制转换为二进制、八进制、十六进制
原创
©著作权归作者所有:来自51CTO博客作者wx5dc22f0fa8661的原创作品,请联系作者获取转载授权,否则将追究法律责任
public class JinZhiZhuanHua {
public static void main(String[] args) {
//使用查表法将十进制转换为二进制、八进制、十六进制
int num=60;
toBin(num);
tooct(0);
toHex(60);
}
//转换为二进制
public static void toBin(int num){
conversion(num,1,1);
}
//(转换为八进制
public static void tooct(int num){
conversion (num,7,3);
}
//转换为十六进制
public static void toHex(int num){
conversion (num,15,4);
}
//转换
public static void conversion(int num, int diwei, int yiwei) {
//如果num等于0,结果输出为0
if (num==0){
System.out.println("num="+0) ;
return;
}
//定义一个包含二进制、八进制、十六进制的表
char[] chs={'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F',};
//定义一个临时容器
char[] arr=new char[32];
//定义一个操作数组的指针
int pos=arr.length;
//利用与低位最大值的方式取出低位,存到临时数组中
while(num!=0){
arr[--pos]=chs[num&diwei];//--pos倒著往临时容器里存
num >>=yiwei;//无条件右移相应位数
}
//打印转换后的结果
for( int x=pos;x<arr.length; x++)
System.out.print(arr[x]);
//换行
System.out.println();
}
}
