【进制转换】Java怎么实现十进制转换到二进制、八进制、十六进制?

代码如下:

package basic;

import java.util.Scanner;

/*
 * Goal:十进制数转换成八进制、二进制、十六进制
 * Author:Tang.Mitnick
 * Site:FaFu
 * */

/*设计思想:封装一个方法使它实现十进制向二进制、八进制、十六进制的转换
 * 首先如果这个数非零,则把它与要转换的进制数的最大进位数进行与运算,这样就能够取出
 * 需要转换的进制数对应的转换后进制数的基数,然后对应它对应基数数组中的元素,再把对应的
 * 基数存在新的数组中(记住是倒序的),打印非零元素即可
 * 
 * */
public class BinarySystem {
	
	
	public static void transform(int number,int max,int bitwise)
	{
        //考虑用户输入0情况
		if(number==0)
		{
			System.out.println(0);
			return ;
		}
		char[] radix = { '0','1','2','3'//所有进制的基数数组;比如二进制由1和0组成
					    ,'4','5','6','7'
					    ,'8','9','A','B'
					    ,'C','D','E','F'};
		char[] array = new char[32];//因为输入的数是int型的,所以数组长度为32位
		int pointer = array.length;//pointer代表数组中的下标,可以理解为指针

		while(number!=0)
		{
			int temp = number & max;//与该进制的最大进位数进行与运算
			array[--pointer] = radix[temp];/*把与后的结果对应的数组元素进行
			                                                                                  从最后位向前位赋值*/
			number = number >>> bitwise;//数字进行位运算
		}
           //打印计算后的新数组
		for(int x=pointer; x<array.length; x++)
		{
			System.out.print(array[x]);
		}

		return ;
	}
	
	/*
	十进制-->二进制
	*/
	public static void toBin(int number)
	{
		System.out.println("二进制:");
		transform(number,1,1);
		System.out.println(" ");
	}

	/*
	十进制-->八进制
	*/
	public static void toOctal(int number)
	{
		System.out.println("八进制:");
		transform(number,7,3);
		System.out.println(" ");
	}
	/*
	十进制-->十六进制
	*/
	public static void toHex(int number)
	{
		System.out.println("十六进制:");
		transform(number,15,4);
		
	}


	public static void main(String[] args) 
	{
		System.out.print("请输入需要转换的十进制数:");
		Scanner scanner=new Scanner(System.in);
		int number=scanner.nextInt();
		scanner.close();
		
		toBin(number);
		toOctal(number);
		toHex(number);

	}

}

结果展示:
【进制转换】Java怎么实现十进制转换到二进制、八进制、十六进制?