題目地址:
https://leetcode.com/problems/convert-a-number-to-hexadecimal/
將一個位整數轉換爲進製表示。負數按照取反加一的方式表示。直接按二進制位四個四個的取一下即可。代碼如下:
public class Solution {
public String toHex(int num) {
// 0需要特判
if (num == 0) {
return "0";
}
StringBuilder sb = new StringBuilder();
while (num != 0) {
// 取出最後四位
int four = num & ((1 << 4) - 1);
// 右移四位。這裏需要用java裏的無符號右移>>>
num >>>= 4;
if (four < 10) {
sb.append(four);
} else {
sb.append((char) ('a' + (four - 10)));
}
}
return sb.reverse().toString();
}
}
時空複雜度。