数字转换为十六进制数

2020-06-23  本文已影响0人  WAI_f

题目:

给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。

注意

示例:

输入:
-1
输出:
"ffffffff"

解题方法:

这道题还是细节挺多的:

  1. 有符号数转成无符号数,避免了正负数判断和分开处理;
  2. 0需要专门处理;
  3. 使用tmp字符串,完成字符的查找,使得代码很简洁。

代码和结果:

class Solution {
public:
    string toHex(int num) {
        string a;
        string tmp="0123456789abcdef";
        unsigned int b=num;
        if(b==0)
            return "0";
        while(b)
        {
            int idx=b&15;
            a.push_back(tmp[idx]);
            b>>=4;
        }

        reverse(a.begin(),a.end());
        return a;
    }
};

运行结果:


原题链接:https://leetcode-cn.com/problems/convert-a-number-to-hexadecimal/

上一篇 下一篇

猜你喜欢

热点阅读