面试题1-十进制数转化为十六进制数,不使用hex方法

问题: 给定一个整数,写一个算法将它转换为16进制,对于负数,可以使用two’s complement方法

def tohex(num):
    """十进制数转十六进制数"""
    di = {10: 'a', 11: 'b', 12: 'c', 13: 'd', 14: 'e', 15: 'f'}
    hexStr = ""
    if num < 0:        # 输入负数
        num = num + 2**32
    while num >= 16:
        rest = num % 16    # 取余数
        hexStr = di.get(rest, str(rest)) + hexStr
        num //= 16
    hexStr = di.get(num, str(num)) + hexStr
    return hexStr
   
            

猜你喜欢

转载自www.cnblogs.com/xnnx/p/interview_question.html