繁体   English   中英

如何将小数转换为较高的基数,反之亦然

[英]How to convert decimal to a higher base and vice versa

作为我的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。 任何帮助,将不胜感激。 提前致谢。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM