java中十进制转换为任意进制

次笔试时候遇到的关于十进制转换成十三进制的编程题。

先说说简单的思路吧:

1、十进制数 num 转换为 n进制

  num%n结果肯定为n进制数的最后一位

  结果存入一个数组中

2、进入一个循环num!=0时候

  num=num/n 

重复1的操作

将倒数第二位、倒数第三位。。。到最终结果存入数组

3、遍历数组从 count到0

代码如下

[java] view plain copy
 
 print?
  1.   

 

[java] view plain copy
 
 print?
  1. package com.cslience.test;  
  2. /* 
  3.  * 作者:cslience 
  4.  * 功能:十进制转换成任意进制的方法 
  5.  * 求余数将其存入数组中 
  6.  *  
  7.  */  
  8. public class Transformation {  
  9.   
  10.     /** 
  11.      * @param args 
  12.      */  
  13.   
  14.     public void transform(int num,int n){  
  15.         //参数num为输入的十进制数,参数n为要转换的进制  
  16.         int array[]=new int[100];  
  17.         int location=0;  
  18.         while(num!=0){//当输入的数不为0时循环执行求余和赋值  
  19.             int remainder=num%n;  
  20.             num=num/n;  
  21.             array[location]=remainder;//将结果加入到数组中去  
  22.             location++;  
  23.         }  
  24.         show(array,location-1);  
  25.   
  26.     }  
  27.     private void show(int[] arr,int n){  
  28.         for(int i=n;i>=0;i--){  
  29.             if(arr[i]>9){  
  30.                 System.out.print((char)(arr[i]+55));  
  31.             }  
  32.             else  
  33.                 System.out.print(arr[i]+"");  
  34.         }  
  35.     }  
  36.     public static void main(String[] args)  
  37.     {  
  38.         // 测试用例  
  39.         Transformation t=new Transformation();  
  40.         t.transform(18, 8);  
  41.   
  42.     }  
  43.   
  44. }  
posted @ 2017-08-21 17:09  yangchunchun  阅读(4653)  评论(0编辑  收藏  举报