Convert a Number to Hexadecimal

Convert a Number to Hexadecimal

题目描述:

给定一个数将其转化为16进制的形式。

例子:

具体描述见LeetCode405

解题思路:

主要的思路就是不断的求余和除法。其中需要注意的有两点;其一这样得到的16进制与我们想要的结果是逆序相反的;其二是负数的处理在利用unsigned int对原始数据进行处理即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public:
string toHex(int num) {
unsigned int n = num;
string res;
while(n){
int b = n % 16;
res += (b < 10) ? ('0' + b):('a' + b - 10);
n /= 16;
}
reverse(res.begin(), res.end());
return res == "" ? "0" : res;
}
};