欢迎访问宙启技术站
智能推送

Java函数实现将一个十进制数转换为任意进制字符串的方法是什么?

发布时间:2023-05-31 19:20:19

Java中可以通过toString()方法和valueOf()方法实现将一个十进制数转换为任意进制字符串。

首先介绍valueOf()方法。这个方法是用来将一个字符串转换为指定进制下的十进制数的,语法如下:

public static Integer valueOf(String s, int radix)

其中,s表示要转换的字符串,radix表示要将字符串转换为的进制。比如,如果要将二进制数110010转换为十进制数,可以使用如下代码:

Integer.parseInt("110010",2)

上面的代码中,参数2表示将二进制数转换为十进制数。

接着介绍toString()方法。这个方法是用来将一个十进制数转换为指定进制下的字符串的。我们可以采用如下方式实现:

public static String toAnyRadix(int num, int radix) {

    String str = "";

    char[] ch = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

    while (num / radix != 0) {

        str = ch[num % radix] + str;

        num = num / radix;

    }

    str = ch[num % radix] + str;

    return str;

}

在上面的代码中,num表示要转换的十进制数,radix表示要将十进制数转换为的进制。我们首先将包含0到F的字符数组ch初始化,然后通过while循环不断对num取余并将余数转换为对应的字符拼接到字符串str的前面。最后返回字符串str即可。

可以使用如下代码来测试上面的方法:

public static void main(String[] args) {

    System.out.println(toAnyRadix(10, 2)); //1010

    System.out.println(toAnyRadix(10, 16)); //A

    System.out.println(toAnyRadix(456, 8)); //710

}

需要注意的是,在转换二进制数时,我们可以直接使用valueOf()方法,而不必使用上述toAnyRadix()方法,因为Java已经提供了toBinaryString()方法来实现这个功能。