Convert a Number to Hexadecimal
这里利用了Python不会溢出的特性利用2 ** 32来对32bit整数进行约束,这样相当于不用考虑正负号问题直接除16就可以了
class Solution(object):
def toHex(self, num):
"""
:type num: int
:rtype: str
"""
charList = '0123456789abcdef'
tmp = (2 ** 32 + num) % (2 ** 32)
result = ''
while tmp:
tmp, digit = divmod(tmp, 16)
result = charList[digit] + result
return result if num != 0 else '0'
正统的bit位方法以后再看