题意:
将一个整数转化成十六进制。
初步分析:
核心就是循环:不断除以16,取余数。
1因为32位,可以使用long
2 因为要一个个添加,可以使用StringBuilder
3 对于a b c 可以使用一个char[] 做map
代码:
public class Solution {
public String toHex(int num) {
if (num == 0)
return "0";
char[] map = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
StringBuilder ret = new StringBuilder();
long longnum = num;
if (longnum < 0)
longnum = (1L<<32)+longnum;
while (longnum != 0) {
ret.append(map[(int)(longnum % 16)]);
longnum /= 16;
}
return ret.reverse().toString();
}
}