java将十进制数转换为任意进制数

本文介绍了一种将十进制数转换为其他任意进制数的方法,并提供了一个易于理解的Java实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这其实是一道滴滴的校招题,但是感觉还是挺有用的,很多十进制数在某种特定的场合需要被转换为其他任意进制数,比如常见的二进制、八进制、十六进制,也可能会有比较罕见的,比如自定义的三进制数等

其实网上有很多种实现方式,我的我不是代码量最少的,可能也不是最全面的,但我相信,我的应该是最通俗易懂的。

话不多说,接下来放上我的代码:

package demo;


import java.util.Scanner;


public class Demo10 {

public void transform(int num,int n){  

        //参数num为输入的十进制数,参数n为要转换的进制  

        int array[]=new int[100];  

        int count=0;

        int location=0;  

        while(num!=0){//当输入的数不为0时循环执行求余和赋值  

            int remainder=num%n;  

            num=num/n

            

            array[location]=remainder;//将结果加入到数组中去  

            location++;  

            count++;

        }

        show(array,location-1,count);  

  

    }  

    private void show(int[] arr,int n,int count){  

    

    

        for(int i=n;i>=0;i--){  

        

        

        

        

        if(arr[i]<0) {

        for(int j=0;j<count-1;j++) {

        arr[j]=Math.abs(arr[j]);

        }

        

        

        }

        if(arr[i]>9||arr[i]<-9){  

                    System.out.print((char)(arr[i]+55));  

                }  

                else  

                    System.out.print(arr[i]+"");  

            }  

    }  

    public static void main(String[] args)  

    {  

        // 测试用例  

    Demo10 t=new Demo10(); 

    Scanner sc=new Scanner(System.in);

    String[] str=sc.nextLine().split(" ");

    int[] a=new int[str.length];

    for(int i=0;i<str.length;i++) {

    a[i]=Integer.parseInt(str[i]);

    }

    

        t.transform(a[0], a[1]);  

  

    }  

}


相信这段代码还是很多人都能看得懂的,如果有什么不懂的可以评论区里问我。如果有测试用例失败的,也请麻烦评论区里告诉我,我看看能不能完善一下我的代码,使它的功能更加全面。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值