1.题目:
问题描述
给出一个非负整数,将它表示成十六进制的形式。
输入格式
输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
输出格式
输出这个整数的16进制表示
样例输入 30
样例输出 1E
做十六进制转十进制直接用的API,后面做十进制转十六进制时我就说自己写一遍
2.十进制转十六进制思路:
写一个方法,传入int类型的十进制数,最后返回一个十六进制的字符串结果。此时返回的字符串是逆序的,最后输出时反向即可。
具体处理:因为是转十六进制,所以不断对16求余即可,判断余数的大小,大于9以后就要以大写字母的形式输出了,此处使用字符串拼接的方式。
内联代码片
import java.util.Scanner;
public class DecToHex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String s = decToHex(a);
for(int i = s.length() - 1; i >= 0; i--) {
System.out.print(s.charAt(i));
}
}
public static String decToHex(int a) {
String s = "";
int m = 0;
int n = a;
if(a == 0) {
s += '0';
return s;
}
while(n > 0) {
m = n % 16;
n = n / 16;
switch(m) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:
s += m; break;
case 10: s += 'A'; break;
case 11: s += 'B'; break;
case 12: s += 'C'; break;
case 13: s += 'D'; break;
case 14: s += 'E'; break;
case 15: s += 'F'; break;
}
}
return s;
}
}