方法一、主要应用java包自带的进制转换工具)
import java.util.Scanner;
//16进制转10进制(已测试通过)
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
System.out.println(Long.valueOf(s,16));
}
}
import java.util.Scanner;
//10进制转16进制(已测试通过)
public class Main {
public static void main(String[] args) {
int x;
Scanner scanner = new Scanner(System.in);
x = scanner.nextInt();
System.out.println(Integer.toHexString(x).toUpperCase());
//注意将输出的字符改成大写方式输出
}
}
使用Integer.toHexString()和Long.valueOf();将输入的s字符串转换成十进制long类型;
方法二、通过字符的方法进行转换
import java.util.Scanner;
//16进制转10进制(已测试通过)
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s=scanner.next();
int n=s.length();
long sum=0;
for(int i=0;i<n;i++) {
sum += getNumber(s.charAt(n-i-1))*Math.pow(16,i);
}
System.out.println(sum);
}
public static int getNumber(char str){
if(!(str >= '0' && str <= '9'||str >= 'A' && str <= 'F')){
return -1;
} else if(str >= '0' && str <= '9') {
return str-'0';
} else {
return str-'A'+10;
}
}
}
import java.util.Scanner;
//10进制转16进制(已测试通过)
public class Main {
static String[] october={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
public static void main(String[] args) {
int x,t;
Scanner scanner = new Scanner(System.in);
x = scanner.nextInt();
StringBuffer s = new StringBuffer();
while(x>15){
t = x%16;
s.insert(0,october[t]);
x=x/16;
}
s.insert(0,october[x]);
System.out.println(s);
}
}