java中如何处理基转换

java中如何处理基转换,java,Java,每当我输入一个字符串和一个int,比如“1101”,2。方法将返回13。但问题部分如下 对于大于10的基数,使用以“A”开头的大写字母作为数字。因此,在基数16中,使用的数字是“0”到“F”。您的方法必须使用范围为1到36的碱基 这到底是什么意思,我在基转换问题上太弱了 这会让你开始。它将从9进制转换为10进制。你将不得不修改它以获得更高的基数,但这应该不会太难。例如,可以使用case语句将a-F转换为它们的数值 class BaseConvert { public

每当我输入一个字符串和一个int,比如“1101”,2。方法将返回13。但问题部分如下

对于大于10的基数,使用以“A”开头的大写字母作为数字。因此,在基数16中,使用的数字是“0”到“F”。您的方法必须使用范围为1到36的碱基


这到底是什么意思,我在基转换问题上太弱了

这会让你开始。它将从9进制转换为10进制。你将不得不修改它以获得更高的基数,但这应该不会太难。例如,可以使用case语句将a-F转换为它们的数值

 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));
        }
    }
对于大于10的基数,使用以“A”开头的大写字母作为数字。因此,在基数16中,使用的数字是“0”到“F”。您的方法必须使用范围为1到36的碱基

您的讲师正在定义基数大于10的字符

例如,在基数16中,字母A到F用作数字。底座16中的A相当于底座10中的10。基16中的F相当于基10中的15


这里有一个提示。将数字从输入基数转换为10基数,然后将数字从10基数转换为输出基数要容易得多。这是因为我们习惯了以10为基数的数学。

以16为基数,A=10,B=11,C=12,D=13,E=14,F=15。10 = 16. 如果你在基频转换方面很弱,那就好好学习吧。是的,我会感谢你的回答String[]bits=s.split;这是什么意思?我不明白。Split是一个函数,它将字符串拆分并将片段放入数组中。您可以选择分割它的方式。在本例中,意味着我们将字符串中的每个字符分开,因此我们取输入字符串,比如1101,并将所有的1和0分开。然后我们可以计算每个位的值。是的,现在我明白了。但是int val=Integer.parseIntbits[bits.length-1-i]*intMath.powbase,i;这看起来很复杂,你能解释一下吗?我知道位。长度-1-我将从最后一位开始执行,还有数学。powbase,我是I次的基幂。但我真的不知道parseInt和int是什么意思。