Java 任意进制转换(两种方式)

本文提供两种Java实现任意进制转换的方法:

方法一:利用 Integer 实现进制转换
1、 Integer类的方法toBinaryString(),Integer.toOctalString(), Integer.toHexString()可实现十进制分别转换成二进制、八进制和十六进制
2、Integer.valueOf(s, radix) 将第一个参数解释为用第二个参数指定的基数表示的有符号整数,换句话说就是将 s 以 radix 进制的形式转换为十进制。

代码:

public class ArbitraryConversion
 {

    public static void main(String[] args) {
        System.out.println("==========十进制776转换到其它进制:==========");
        int sjz = 776;
        System.out.println("十进制转二进制: " + Integer.toBinaryString(sjz));
        System.out.println("十进制转八进制: " + Integer.toOctalString(sjz));
        System.out.println("十进制转十六进制: " + Integer.toHexString(sjz));
        
        
        
        System.out.println("==========八进制1410转换到其它进制:==========");
        String bjz = "1410";
        System.out.println("八进制转十进制: " + Integer.valueOf(bjz, 8));
        System.out.println("八进制转二进制: " + Integer.toBinaryString(Integer.valueOf(bjz , 8))); //八进制转十进制,十进制转二进制
        System.out.println("八进制转十六进制: " + Integer.toHexString(Integer.valueOf(bjz, 8))); //八进制转十进制,十进制转十六进制
        
        
        
        System.out.println("==========十六进制308转换到其它进制:==========");
        String sljz = "308";
        System.out.println("十六进制转十进制: " + Integer.valueOf(sljz , 16));
        System.out.println("十六进制转二进制: " + Integer.toBinaryString(Integer.valueOf(sljz , 16))); //十六进制转十进制,十进制转二进制
        System.out.println("十六进制转八进制: "+ Integer.toOctalString(Integer.valueOf(sljz, 16))); //十六进制转十进制,十进制转八进制
        
        
        
        System.out.println("==========二进制1100001000转换到其它进制:==========");
        String ejz = "1100001000";
        System.out.println("二进制转十进制: " + Integer.valueOf(ejz, 2));
        System.out.println("二进制转八进制: " + Integer.toOctalString(Integer.valueOf(ejz , 2))); //二进制转十进制,十进制转八进制
        System.out.println("二进制转十六进制: "+   Integer.toHexString(Integer.valueOf(ejz, 2))); //二进制转十进制,十进制转十六进制
    }
}

方法二:利用 BigInteger 实现进制转换。
利用BigInteger 实现进制转换比较简单,注释很详细。

import java.math.BigInteger;

/*
 * BigIntegerArbitraryConversion
 */
public class BigIntegerArbitraryConversion {
	public static void main(String[] args) {
		System.out.println(change("1410", 8, 2));   // 八进制转二进制
		System.out.println(change("1410", 8, 10));  // 八进制转十进制
		System.out.println(change("1410", 8, 16));  // 八进制转十六进制
	}

	/**
	 * number   要转换的数    
	 * from     原数的进制     
	 * to       要转换成的进制
	 */
	private static String change(String number, int from, int to) {
		return new BigInteger(number, from).toString(to);
	}
}

你可能感兴趣的:(Java,SE)