Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将十进制转换为任何其他数字系统的算法是什么_Java - Fatal编程技术网

Java-将十进制转换为任何其他数字系统的算法是什么

Java-将十进制转换为任何其他数字系统的算法是什么,java,Java,我试图找到一种算法,将任何正十进制数转换成任何其他数系。 我似乎不能把我的头放在它上面。有人能帮忙吗?您可以使用%模运算符来实现此目的: 假设你得到了十进制数123,想把它转换成二进制, 在本例中,您需要对所需系统的秩进行123模运算,即二进制->2 123 % 2 -> equals to 1 然后将123除以相同的等级和楼层,结果如下: 123/2 = 61.5 -> 61 然后对结果重复该过程 61 % 2 -> 1 61/2 = 30.5 -> 30 30 %

我试图找到一种算法,将任何正十进制数转换成任何其他数系。
我似乎不能把我的头放在它上面。有人能帮忙吗?

您可以使用%模运算符来实现此目的: 假设你得到了十进制数123,想把它转换成二进制, 在本例中,您需要对所需系统的秩进行123模运算,即二进制->2

123 % 2 -> equals to 1
然后将123除以相同的等级和楼层,结果如下:

123/2 = 61.5 -> 61
然后对结果重复该过程

61 % 2 -> 1
61/2 = 30.5 -> 30
30 % 2 -> 1
30/2 = 15 -> 15
等等

在重复这些步骤的同时,取每个模计算的结果, 把它倒着写,意思是最后一个结果是最左边的数字,第一个结果是最右边的数字 在除法后,重复这些步骤直到达到0。 让我们结束这个例子:

123 % 2 = 1 (1. digit from the right)
123/2 = 61.5 -> 61

61 % 2 = 1 (2. digit)
61/2 = 30.5 -> 30

30 % 2 = 0 (3. digit)
30/2 = 15

15 % 2 = 1 (4. digit)
15 / 2 = 7.5 -> 7

7 % 2 = 1 (5. digit)
7 / 2 = 3.5 -> 3

3 % 2 = 1 (6. digit)
3 / 2 = 1.5 -> 1
1 % 2 = 1 (7. digit)
1 / 2 = 0 <- reached zero, ending here

假设这是你的家庭作业,不使用Integer。toString

请求家庭作业帮助的问题必须包括到目前为止你为解决问题所做的工作的摘要,以及对你解决问题的困难的描述。此外,问题太广泛了。至少,请给出一些明确的例子并详细说明这个问题,谢谢。输入和输出的是数字还是字符串?互联网上充斥着很好的教程和解释,说明数字系统是如何工作的,以及如何从一个系统转换成另一个系统,即使是任意的通用系统。请明确阅读这些教程,展示研究成果,然后解释尚不清楚的地方。此外,您是否正在寻找一种通过程序快速完成这项工作的方法?Java支持用于数字系统转换的单行命令。或者你对如何自己计算它很感兴趣?
public static void main(String[] args) {
    System.out.println(convertFromDec(123, 2)); //converting to binary
    System.out.println(convertFromDec(123, 8)); //converting to octal
    System.out.println(convertFromDec(123, 16)); //converting to hex
}

public static String convertFromDec(int number, int system) {
    String result = "";
    while(number > 0) {
        String digit = ""; //in case of number systems of "rank" 11 or higher
        switch(number%system) { //we would have letters from A to F as additional digits
            case 10 : digit = "A";
            case 11 : digit = "B";
            case 12 : digit = "C";
            case 13 : digit = "D";
            case 14 : digit = "E";
            case 15 : digit = "F";
            default : digit = number%system + "";
        }
        result += digit;
        number /= system;
    }
    return result;
}