這是一個適合你的小演示。它使用java.util.Scanner
並將其隱藏。
import java.util.Scanner;
public class hex {
static long dec=0;
static long squ(int i)
{
long pow=16;
if(i==0)
{
return 1;
}
else if(i==1)
{
return pow;
}
else
{
for(int k=2;k<=i;k++)
{
pow=pow*16;
}
return pow;
}
}
public static void main(String[] args) {
Scanner so=new Scanner(System.in);
System.out.println("enter the hexa decimal no");
String hx=so.next();
hx.toLowerCase();
char c[]=hx.toCharArray();
int j=c.length;
int x=j;
int i=0;
j--;
while(j>=0)
{
if(c[j]=='a'|c[j]=='b'|c[j]=='c'|c[j]=='d'|c[j]=='e'|c[j]=='f'|c[j]=='1'|c[j]=='2'|c[j]=='3'|c[j]=='4'|c[j]=='5'|c[j]=='6'|c[j]=='7'|c[j]=='8'|c[j]=='9')
{
j--;
}
else
{
i++;
break;
}
}
if(i>0)
{
System.out.println("its not hex decimal no");
}
else
{
System.out.println("it s hex decimal no");
x--;
int xy=0;
while(x>=0)
{
long z=squ(xy);
++xy;
char r=c[x];
String s=""+r;
switch(s)
{
case "a": dec=dec+(10*z);
break;
case "b": dec=dec+(11*z);
break;
case "c": dec=dec+(12*z);
break;
case "d": dec=dec+(13*z);
break;
case "e": dec=dec+(14*z);
break;
case "f": dec=dec+(15*z);
break;
case "1": dec=dec+(1*z);
break;
case "2": dec=dec+(2*z);
break;
case "3": dec=dec+(3*z);
break;
case "4": dec=dec+(4*z);
break;
case "5": dec=dec+(5*z);
break;
case "6": dec=dec+(6*z);
break;
case "7": dec=dec+(7*z);
break;
case "8": dec=dec+(8*z);
break;
case "9": dec=dec+(9*z);
break;
case "0": dec=dec+(0*z);
break;
default:System.out.println("cant find****"+s);
break;
}
x--;
}
System.out.println("final decimal equ is*****"+dec);
}
}
}
從谷歌搜索第一個結果是:http:/的/www.roseindia.net/java/java-conversion/HexadecimalToDecima.shtml –
可能重複[性能問題:爲十六進制字符轉換爲Java中其數值的最快方式(http://stackoverflow.com/questions/221001/performance-question-faster-way-to-convert-hexadecimal-char-to-its-number-valu) – Mark