java中十进制转换为任意进制
次笔试时候遇到的关于十进制转换成十三进制的编程题。
先说说简单的思路吧:
1、十进制数 num 转换为 n进制
num%n结果肯定为n进制数的最后一位
结果存入一个数组中
2、进入一个循环num!=0时候
num=num/n
重复1的操作
将倒数第二位、倒数第三位。。。到最终结果存入数组
3、遍历数组从 count到0
代码如下
- package com.cslience.test;
- /*
- * 作者:cslience
- * 功能:十进制转换成任意进制的方法
- * 求余数将其存入数组中
- *
- */
- public class Transformation {
- /**
- * @param args
- */
- public void transform(int num,int n){
- //参数num为输入的十进制数,参数n为要转换的进制
- int array[]=new int[100];
- int location=0;
- while(num!=0){//当输入的数不为0时循环执行求余和赋值
- int remainder=num%n;
- num=num/n;
- array[location]=remainder;//将结果加入到数组中去
- location++;
- }
- show(array,location-1);
- }
- private void show(int[] arr,int n){
- for(int i=n;i>=0;i--){
- if(arr[i]>9){
- System.out.print((char)(arr[i]+55));
- }
- else
- System.out.print(arr[i]+"");
- }
- }
- public static void main(String[] args)
- {
- // 测试用例
- Transformation t=new Transformation();
- t.transform(18, 8);
- }
- }