LeetCode 405 数字转换为十六进制数[异或 位运算] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 405 数字转换为十六进制数[异或 位运算] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
由于会出现负整数,所以正常的取余操作不能够很好运用了,我们都知道,在计算机底层,是按位存取的,每四位是十六进制,那么我们只需要每次对输入数的二进制后四位与0xf进行与操作,就可以得到在十六进制中的位置,直接返还该位置的值即可,注意边界条件,0的话直接返回0,代码如下:

class Solution {
public:
    string toHex(int num) {
        if(num == 0) return "0";
        string ans = "";
        string s = "0123456789abcdef";
        while(num && ans.size() < 8) {
            ans = s[num & 0xf] + ans;
            num >>= 4;
        } 
        return ans;
    }
};

以上是关于LeetCode 405 数字转换为十六进制数[异或 位运算] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 405 数字转换为十六进制数[异或 位运算] HERODING的LeetCode之路

405. 数字转换为十六进制数

405. 数字转换为十六进制数

405 Convert a Number to Hexadecimal 数字转换为十六进制数

LeetCode练习目录

《LeetCode之每日一题》:166.数字转换为十六进制数