十进制转十六进制 (10 分)输入为一个十进制的数(可以是多位),输出是其十六进制的值。
输入样例:
在这里给出一组输入。例如:
255
结尾无空行
输出样例:
在这里给出相应的输出。例如:
FF
结尾无空行
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int k = 0;
int[] arr = new int[100];
while(num != 0){
arr[k++] = num % 16;
num = (num - arr[k-1]) / 16;
}//次为本题最关键算法
for (int i = k-1; i >= 0; i--){
if (arr[i] == 15){
System.out.print("F");
}
else if (arr[i] == 14){
System.out.print("E");
}
else if (arr[i] == 13){
System.out.print("D");
}
else if (arr[i] == 12){
System.out.print("C");
}
else if (arr[i] == 11){
System.out.print("B");
}
else if (arr[i] == 10){
System.out.print("A");
}
else{
System.out.print(arr[i]);
}
}
}
}
此题运用了进制换算的公式,若一个数10进制转为16进制,则让这个数不断除16,每次除16的余数存入我们的数组中,最后用16进制来读数的时候要从数组的末尾一直读到开头,且注意进制中10-A,11-B,13-C……的换算