各种进制转换--利用Java类的静态方法

描述:我们经常会碰到各种进制转换的问题,当然手动模拟写一个简单的转换也是可以的,其实在java里面有很多可以直接利用的方法,这里我总结一下,方便使用,看实例吧:

import java.util.*;

public class Main {
    static  Scanner in = new Scanner(System.in);
    public static void main(String args[]){ 
      System.out.println("十进制转换成X进制---利用Integer.toXString方法");
      System.out.println();
      int n = 20;
      System.out.println("16进制:"+ Integer.toHexString(n));
      System.out.println("8进制:"+ Integer.toOctalString(n));
      System.out.println("2进制:"+ Integer.toBinaryString(n));
      System.out.println();
      System.out.println("X进制转换成十进制---利用Integer.valueOf方法");
      System.out.println("16进制:"+ Integer.valueOf("FFFF", 16));
      System.out.println("8进制:"+ Integer.valueOf("65", 8));
      System.out.println("2进制:"+ Integer.valueOf("1100", 2));
      System.out.println();
      System.out.println("X进制转换成X进制---综合运用,先过渡到X进制,再转换成X进制");
      System.out.println("16进制转换8进制");
      System.out.println(Integer.toOctalString(Integer.valueOf("FF", 16)));
      
    } 

}
补充:如果数据范围很大的话就不用这种方法了,比较好的处理方式就是手动模拟计算过程并且转化为数组处理。这里我提供一个简单的模板:
import java.util.*;

public class Main {
    static  Scanner in = new Scanner(System.in);
    public static void main(String args[]){
    	int n = in.nextInt();
    	int radix = in.nextInt();//进制
    	int[] res = new int[1000];
    	int k = 0;
    	while(n!=0) {
    		res[k++] = n%radix;
    		n/=radix;
    	}
       for(int i = k - 1;i >= 0;i--)//注意逆序输出才是结果
    	   System.out.print(res[i]);
   } 

}

猜你喜欢

转载自blog.csdn.net/JingleLiA/article/details/79747991