您的位置:首页 > 编程语言 > Java开发

java实现十六进制转化为十进制范例

2012-04-30 22:42 281 查看
最近小弟写了一个十六进制转化为十进制的java程序,这个算法的大致思路是将输入的十六进制的数转换为2进制,然后将2进制转换为十进制的算法。该算法的时间效率不是很好,各位前辈有什么好的建议希望大家不吝赐教啊~ 小弟在此谢谢大家~

下面是我写的java代码:

public class DToTen {

/**

* @param args先将十六进制转化为2进制

*/

public String DToTwo(char[] a){

String str="";

for(int i=0;i<a.length;i++){

switch (a[i]) {

case '0':str+="0000";break;

case '1':str+="0001";break;

case '2':str+="0010";break;

case '3':str+="0011";break;

case '4':str+="0100";break;

case '5':str+="0101";break;

case '6':str+="0110";break;

case '7':str+="0111";break;

case '8':str+="1000";break;

case '9':str+="1001";break;

case 'A':str+="1010";break;

case 'B':str+="1011";break;

case 'C':str+="1100";break;

case 'D':str+="1101";break;

case 'E':str+="1110";break;

case 'F':str+="1111";break;

default:

break;

}

}

return str;

}

/*

* 将2进制转化为十进制

*/

public int twoToTen(String a){

char[] c=a.toCharArray();

int sum=0;

int s;

int i=0;

//注意下面的转换

for(;i<c.length-1;i++){//2进展的最后以为格外考虑

s=1;

if(c[i]=='1'){

for(int j=0;j<c.length-i-1;j++){

s=s*2;

}

sum+=s;

}

}

if(c[c.length-1]=='1'){

sum+=1;

}

return sum;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

String d="12AB";

char[] a=d.toCharArray();

DToTen ttt=new DToTen();

String c=ttt.DToTwo(a);

System.out.println(ttt.twoToTen(c));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: