进制之间的转换()刚入门先写个简单的练练手)
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 }
代码内有注释所以就不解释了.并且这么简单也不用我多费口舌.要是真的有不懂得可以留言.
欢迎各个大神提出改进的意见,各种改进我都接受!感谢!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步