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位方法以后再看

results matching ""

    No results matching ""