这道题这么写其实很抖机灵啊,和传统的取余不一样。如果传统算法要考虑负数情况还得取反加一。
class Solution {
public:
string toHex(int num) {
string s;
if(num == 0) return "0";
while(num && s.size()<8)
{
int c = num&0xf;
if(c<10) s.push_back('0'+c);
else s.push_back(c-10+'a');
num>>=4;
}
reverse(s.begin(),s.end());
return s;
}
};