405. 数字转换为十六进制数
题解:
- 首先,我们需要创建一个映射表,将十进制数0-15映射到十六进制数的字符'0'-'f'。
- 然后,我们需要处理负数的情况。对于负数,我们首先将其转换为补码形式,然后再进行转换。
- 接下来,我们将输入的整数除以16,得到的商和余数分别对应于十六进制数的高位和低位。我们将余数转换为对应的十六进制字符,然后将商作为新的输入继续进行上述操作,直到商为0为止。
- 最后,我们将得到的十六进制字符反转,就得到了最终的结果。
class Solution:def toHex(self, num: int) -> str:if num == 0:return "0"hex_map = "0123456789abcdef"res = ''for _ in range(8):n = num & 15res = hex_map[n] + resnum = num >> 4if num == 0:breakreturn res.lstrip('0')