描述
把10进制数转换成16进制的数
解决
如果是负数,c++做>>会被当成算术右移,在前面补0,把所有的数转换成unsigned格式即可
class Solution {
public:
string toHex(int num) {
string res = "";
string zz = "a";
unsigned num1 = num;
while (num1)
{
int tmp = num1 & 0xf;
if (tmp <= 9)
res = to_string(tmp) + res;
else
{
zz[0] = zz[0] + tmp - 10;
res = zz + res;
zz[0] = 'a';
}
num1 >>= 4;
//cout << num1 << endl;
}
return res.empty() ? "0" : res;
}
};