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

时间:2023-03-09 17:59:01
java中十进制转换为任意进制

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

先说说简单的思路吧:

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

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

结果存入一个数组中

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

num=num/n

重复1的操作

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

3、遍历数组从 count到0

代码如下

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