05-整数转16进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Run {
public static void main(String[] args) {
System.out.println(convert(33)); // 0x21
}

/**
* 任意正整数,转16进制
* @param num 正整数
* @return 十六进制数(字符串形式)
*/
public static String convert(int num) {
StringBuilder sb = new StringBuilder("0x");

int y = 0; // 余数
int x = 0; // 商数
do {
x = num / 16;
y = num % 16;
num /= 16;
sb.append(x); // 有商数,即16的倍数(进位后的数); 无商数,即0(不可省略)
switch (y) {
case 10:
sb.append("A"); break;
case 11:
sb.append("B"); break;
case 12:
sb.append("C"); break;
case 13:
sb.append("D"); break;
case 14:
sb.append("E"); break;
case 15:
sb.append("F"); break;
default:
sb.append(y); break; // 0~9 字符
}

} while (num > 16);
return sb.toString();
}
}

05-整数转16进制
https://janycode.github.io/2017/06/28/20_收藏整理/02_算法题/05-整数转16进制/
作者
Jerry(姜源)
发布于
2017年6月28日
许可协议