如何将十进制转换为更高的基数,反之亦然

时间:2015-02-19 22:04:53

标签: java hex decimal

作为我的java CSC类的编程作业,我编写了以下代码,将数字及其基数转换为十进制数,然后转换为所需的数字和基数。

    public static int baseten(int number,int basein){
    int power = 0;
    int baseten = 0;
    while (number > 0) {
        int finalDigit = number % 10;
        int product = finalDigit*(int)Math.pow(basein, power);
        baseten += product;
        number = number / 10;
        power++;
    }
    return(baseten);
}
public static String convert (int decimal, int baseout){
    String result = "";
    while (decimal > 0){
        //if baseout
        int remainder = decimal % baseout;
        decimal = decimal / baseout;
        result = remainder + result;
    }
    return(result);
}

问题是如何在此代码中将数字转换为高于10的基数?我假设可能是char [],但我现在对数组不是很好,无法想象那可能是什么样子。我认为我不能使用toString或parseInt。任何帮助,将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

你快到了。您可以做的是插入if / else语句以确定余数是否大于或等于10并相应地采取行动。如果不是,请立即执行您正在执行的操作。如果是,则需要在字符串中添加char。这个字符必须是(余数-10)+ 65,因为65是ascii表中的大写字母A,你需要知道十个余数之上有多少位数并将其添加到A.这可以简化为简单地添加55,但是在我看来,可读性较差。然后,只需将该char添加到字符串中,而不是添加int。

相关问题