1 package com.itheima;
2
3 import java.util.Scanner;
4 //该类是我闲暇无事做的,解决了在65536之内的十进制数转换成其他进制的问题.
5 public class JinZhi {
6 public static void main(String[] args){
7 Scanner sc = new Scanner(System.in);
8 System.out.print("请输入要转换的目标进制:");
9 int i =sc.nextInt();
10 System.out.print("请输入十进制数:(小于65535)");
11 int j =sc.nextInt();
12 int y;
13 boolean stwich=true;
14 int k=0;
15 //创建一个用来存放余数的数组
16 int array[]=new int[16];
17 //用判断语句确定目标进制不能是0
18 if (i!=0){
19 //用一个while循环来判断余数计算是否要结束.
20 while (j!=0){
21 y=j%i;
22 j= j/i;
23 array[k]=y;
24 k++;
25 //由于数组的延长我还不会,所以用一个if语句来避免数组的溢出
26 if(k>15){
27 System.out.println("输入数值过大.");
28 //该布尔值为了避免在数组溢出的情况下,程序继续输出前边计算的错误结果
29 stwich=false;
30 break;
31 }
32 }
33 //当stwich是为真时,说明前边程序计算正常,用一个for循环将数组中的元素倒序输出
34 if (stwich==true){
35 //i=(k-1)是数组值从最后边输出既保证正确的结果,有保证在十进制数值小时不会出现前边一大串0
36 for (i=(k-1);i>=0;i--){
37 System.out.print(array[i]);
38 //用一个while循环每隔四位数输出一个空格是输出格式更好看
39 while ((k-i)%4==0){
40 System.out.print(' ');
41 break;
42 }
43 }
44 }
45
46 }
47 else{
48 System.out.println("输入有误,请重新输入!");
49 }
50
51
52 }
53 }
代码内有注释所以就不解释了.并且这么简单也不用我多费口舌.要是真的有不懂得可以留言.
欢迎各个大神提出改进的意见,各种改进我都接受!感谢!!