每当我输入字符串和像这样的int (“1101”,2)时,我都希望。方法将返回13,但在问题部分如下所示
如果基数超过10,请使用大写字母,以‘A’作为数字。在基数16中,所使用的数字是‘0’到‘F’。您的方法必须与范围从1到36的基数一起工作。
这到底意味着什么,我在基础转换问题上太软弱了。
发布于 2015-02-12 05:02:22
这会让你开始。它将转换为基础9到基数10。你必须修改它以适应更高的基数,但这应该不会太难。例如,您可以使用case语句将A转换为它们的数值。
 class BaseConvert
    {
        public static int baseTen(String s, int base){
            String[] bits = s.split("");
            int result = 0;
            for (int i = 0; i < bits.length; i++ ){
                int val = (Integer.parseInt(bits[bits.length-1-i])) * ((int)Math.pow(base,i));
                result += val;
            }
            return result;
        }
        public static void main(String[] args)
        {
                 System.out.println(baseTen("1111",2));
        }
    }发布于 2015-02-15 23:08:51
如果基数超过10,请使用大写字母,以‘A’开头作为数字。因此,在基数16中,所使用的数字是‘0’到‘F’。您的方法必须与范围1到36的基地一起工作。
您的指导员正在为大于10的基数定义要使用的字符。
例如,在基数16中,字母A到F用作数字。基数16中的a等于基数10中的10,基数16中的F等于基数10中的15。
这里有个提示。将数字从输入基转换为基10,然后将数字从基数10转换为输出基要容易得多。这是因为我们已经习惯了10基础的数学。
https://stackoverflow.com/questions/28469369
复制相似问题