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之路