Java 将以10为基数的数字转换为任意数字

Java 将以10为基数的数字转换为任意数字,java,Java,这里有几个类似的线索,提出了一个类似于我的问题,但我无法找到一个相对简单的解决方案。我想知道你们有什么想法 我有一些代码,可以取任何以10为基数的数字,并将其转换为以1到11为基数的数字。当我开始学习十六进制格式的时候,我会很挣扎,因为我需要字母和数字作为基数。我相信这个解决方案很简单,但我目前还没有找到。任何帮助都将不胜感激 import static java.lang.System.*; public class TenToAny { private int base10;

这里有几个类似的线索,提出了一个类似于我的问题,但我无法找到一个相对简单的解决方案。我想知道你们有什么想法

我有一些代码,可以取任何以10为基数的数字,并将其转换为以1到11为基数的数字。当我开始学习十六进制格式的时候,我会很挣扎,因为我需要字母和数字作为基数。我相信这个解决方案很简单,但我目前还没有找到。任何帮助都将不胜感激

import static java.lang.System.*;

public class TenToAny
{
    private int base10;
    private int newBase;


    public TenToAny(int ten, int base)
    {
        base10 = ten;
        newBase = base;
    }

    public void setNums(int ten, int base)
    {    
         base10 = ten;
         newBase = base;
    }

    public String getNewNum()
    {
        String newNum="";
        int original = base10;

        while(original > 0)
        {
            newNum = original%newBase + newNum;
            original = original/newBase;
        }
        return newNum;
    }

    public String toString()
    {
       String complete = base10 + " base 10 is " + getNewNum() + " in base " + newBase;

       return complete;
    }
}

我将创建一个字符串数组,用所有必要的数字/字母初始化,并将字符串放在数组的索引处,而不是将数字放在字符串的末尾,如下所示:

String[] myStringArray = { "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
或者,正如@Alnitak所提到的,只需使用一个字符串,然后使用charAt函数:

String myString = "0123456789ABCDEF";

这样,如果余数是5,则得到5,如果是13,则得到C,等等。

我将创建一个字符串数组,用所有必要的数字/字母初始化,而不是将数字放在字符串的末尾,而是将字符串放在数组的索引处,如下所示:

String[] myStringArray = { "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
或者,正如@Alnitak所提到的,只需使用一个字符串,然后使用charAt函数:

String myString = "0123456789ABCDEF";

这样,如果余数为5,则得到5,如果余数为13,则得到C,等等。

有许多可能的解决方案。我之所以把它包括进来是为了教学价值,不是因为我认为它比另一个答案更好。替换:

newNum = original%newBase + newNum;


有许多可能的解决办法。我之所以把它包括进来是为了教学价值,不是因为我认为它比另一个答案更好。替换:

newNum = original%newBase + newNum;


Integer.ToString,int有一个基数参数。转换为您选择的基数系统是一个步骤。决定用字母表来表示基数系统的数字是另一个步骤。@Mr.Polywhill我想这是不允许的。这好像是学校的作业。。。。基地1。。。什么?@user3189142哈哈,抓得好。Fixed.Integer.ToString,int有一个基数参数。转换为您选择的基数系统是一个步骤。决定用字母表来表示基数系统的数字是另一个步骤。@Mr.Polywhill我想这是不允许的。这好像是学校的作业。。。。基地1。。。什么?@user3189142哈哈,抓得好。修正了。或者只是一个字符串0123456789ABC。。。和.charAtnor只是一个字符串0123456789ABC。。。和.查拉特