数字转换成十六进制数

🎯 问题描述(来源于LeetCode)

1
2
3
  给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用补码运算方法。
答案字符串中的所有字母都应该是小写字符,并且除了 0 本身之外,答案中不应该有任何前置零。
注意:不允许使用任何由库提供的将数字直接转换或格式化为十六进制的方法来解决这个问题。

💻 代码实现

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def toHex(self, num: int) -> str:
ans=''
if num==0:return '0'
a=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
if num<0:
num=pow(2,32)+num
while num:
n=num%16
ans+=a[n]
num//=16
return ans[::-1]

📊 性能分析

提交结果

  • 运行时间:0ms击败100.00%
  • 内存消耗:17.57MB击败42.48%

复杂度验证

  • 时间复杂度:O(Logn)O(Logn)
  • 空间复杂度:O(1)O(1)