这是一个面试题 下一个函数 把16进制 或8进制转换为10进制的数 考验程序员的代码熟练程度 一下是我写的转换函数 如有意见请留言
import java.io.IOException;
import java.util.*;
public class bb {
/**
* 此函数是把16进制和8进制转换为10进制的方法
*
*
* @param args
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个十六进制数:");
String number=input.next();
double shu=zhuan(number);
System.out.println(number+"的十进制是:"+shu);
}
public static double zhuan(String shu){
double num=0;
double hi;
for (int i = 0; i < shu.length(); i++) {
String ren=shu.substring(shu.length()-i-1, shu.length()-i);
if(ren.equals("A")){
hi=10;
}else if(ren.equals("B")){
hi=11;
}else if(ren.equals("C")){
hi=12;
}else if(ren.equals("D")){
hi=13;
}else if(ren.equals("E")){
hi=14;
}else if(ren.equals("F")){
hi=15;
}else{
hi=Double.parseDouble(ren);
}
double jia=Math.pow(16, i) * hi;//16进制转换
//double jia=Math.pow(8, i) * hi;//8禁止转换
num+=jia;
}
return num;
}
}