405. 数字转换为十六进制数
这题目里最难处理的就是变成负数的时候,补码
处理过程::long n = num<0? (long)(Math.pow(2,32) + num) : num;
public String toHex(int num) {
if(num == 0) return "0";
long n = num<0? (long)(Math.pow(2,32) + num) : num;
StringBuilder sb = new StringBuilder();
while(n > 0) {
long s = n % 16;
char add = s >= 10? (char)('a' + s - 10): (char)('0' + s - 0);
sb.append(add);
n = n / 16;
}
return sb.reverse().toString();
}
网友评论