class Solution {
public:
string toHex(int num) {
if(num == 0) return "0";
string str = "0123456789abcdef";
unsigned num2 = num;
string ans = "";
while(num2){
ans = str[num2 & 15] + ans;
num2 >>=4;
}
return ans;
}
};
核心思想转换成unsigned之后进行移位操作,可以使得移位补项0,所以可以使用num2是否为0作为循环条件;
同时这个想法可以用在判断1的个数上,二进制是/2—(>>1),十进制是/10