进制转换器。输入一个十进制数,转成二进制、八进制、十六进制。程序结果验证,可以用系统自带的计算器验证。
这种方法主要思路是人工10进制转2进制时减法的延伸,可能写的不太好大家见谅

package ch05;

import java.util.Scanner;

public class ex2_2 {
	static long  two[]=new long[40];
	static long  o[]=new long[20];
	static long  ox[]=new long[10];
	/**
	 * 存储各个进制转换的数字比如2就存2 4 8 16 32
	 * @param s
	 * @param w
	 */
	private static void fz(long s[],long w) {
		// TODO Auto-generated method stub
		long sum=1;
		for(int i=0;i<s.length;i++)
		{
			s[i]=sum;
			sum=sum*w;
			//System.out.println(s[i]);
		}
	}
	/**
	 * 转换过程
	 * @param arr
	 * @param a
	 */
	private static void zhuanhuan(long arr[],long a) {
		// TODO Auto-generated method stub
		int flag=0;
		for(int i=arr.length-1;i>=0;i--)
		{
			if(a>=arr[i])
			{
				flag=1;
			}
			if(flag==1)
			{
				if(a/arr[i]>9)
				{
					System.out.print((char)(a/arr[i]%10+'a'));
				}
				else
				{
					System.out.print(a/arr[i]);
				}
				a=a%arr[i];
			}
		}

	}
	public static void main(String[] args) {
		Scanner input =new Scanner(System.in);
		long a=input.nextInt();
		fz(two,2);
		fz(o,8);
		fz(ox,16);
		long a1=a;
		System.out.println("二");
		zhuanhuan(two, a);
		System.out.println();
		System.out.println("八");
		zhuanhuan(o, a);
		System.out.println();
		System.out.println("十六");
		zhuanhuan(ox, a);
	}

}

更多推荐

进制转换luo