原文题目:
405. Convert a Number to Hexadecimal
解题:
十进制转16进制的问题,主要考虑负数的情况复杂一些,但是可以通过位与运算进行回避
AC代码:
class Solution {
public:
string toHex(int num)
{
string hexstring ="0123456789abcdef";
string s ="";
while(num)
{
s = hexstring[num&0xf] + s; //注意s在+后面
num = (unsigned int)num >> 4; //除以16,也就是向右移动4bit
}
return s.empty()?"0":s; //考虑num为0的情况
}
};