十进制转十六进制 (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……的换算
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)