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);

	}

}



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值