/**
其他进制转换为十进制
思路:先将数字转为字符,再将字符赋值给数组,再根据公式a[i]*Math.pow(a,i)数组相加
*/
class OtherSystermToDecilmal
{
public static void main(String[] args)
{ f("111",2);//调用f()函数实现二进制转为十进制
f("123",10);//调用f()函数实现十进制转为十进制
f("123",8);//调用f()函数实现八进制转为十进制
f("123",16);//调用f()函数实现16进制转为十进制
}
public static void f(String str,int x)
{
char [] charArray=str.toCharArray();
double []a=new double[charArray.length];
for (int i=charArray.length-1;i>=0;i-- )
{
a[charArray.length-1-i]=charArray[i]-48;//实现字符串的数组化并反向输出数组
}
double b[]=new double[a.length];
for (int j=0; j<a.length;j++ )
{ b[j]=Math.pow(x,j)*a[j];//调用Math.pow()函数
}
sum(b);//调用sum()函数
}
public static void sum(double []c)//自定义sum()完成数组内数字的叠加,
{double sum=0;
for (int i=0; i<c.length;i++ )
{sum=sum+c[i];
}
System.out.print(sum);
}
}
|
|