使用多个输入转换为十六进制

Convert to hexadecimal with multiple inputs

所以我正在编写一个不使用 int 或 hex 的 base 16 到 base 10 转换代码。我不确定如何让它适用于多个十六进制值。所以样本输入类似于:48、42、6D、62、59、61,它应该是:HBmbYa。这是代码:

def __getdecdigit(digit):
    digits = ['0','1','2','3','4','5','6','7','8','9',
              'A','B','C','D','E','F'']
    for x in range (len(digits)):
        if digit == digits[x]:
            return x
        
def hextodec (hexnum):
    decNum=0
    power = 0
    for digits in range (len(hexnum), 0, -1):
        decNum = decNum + 16 ** power * __getdecdigit(hexnum[digits-1])
        power+=1
    return decNum
    
hexnum = input("What is ur string? ")
hexnum = hexnum.upper()
decNum = hextodec(hexnum)
asciii = chr(decNum)
print(asciii)

试试这个:

def __getdecdigit(digit):
    digits = ['0','1','2','3','4','5','6','7','8','9',
              'A','B','C','D','E','F']
    for x in range (len(digits)):
        if digit == digits[x]:
            return x
        
def hextodec (hexnum):
    decNum=0
    power = 0
    for digits in range (len(hexnum), 0, -1):
        decNum = decNum + 16 ** power * __getdecdigit(hexnum[digits-1])
        power+=1
    return decNum
    
hexnum = input("What is ur string? ") # 48, 42, 6D, 62, 59, 61
hexnum = hexnum.upper()
hexls=hexnum.split(',')
res=[]
for val in hexls: # just wrap it with loop
     result=hextodec(val.strip())
     res.append(chr(result))
print(''.join(res))

输出

>>> What is ur string? 48, 42, 6D, 62, 59, 61
>>> HBmbYa