我正在尝试创建一个接受二进制字符串并将其转换为十六进制的函数。到目前为止,我只能创建一个可以将 int 转换为十六进制的函数。
这是我的:
def intToHex(num):
num = abs(num)
symdict={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}
rlist=[]
while(num!=0):
rlist.append(num%16)
num//=16
rlist=rlist[::-1]
for idx, val in enumerate(rlist):
rlist[idx] = symdict.get(val, str(val))
print(''.join(rlist))
intToHex(4512)
示例输出:11A0
如何在不使用将二进制转换为十六进制的内置函数的情况下创建函数。是否可以为此目的修改我上面的函数?
最佳答案
由于您已经将 int 转为 hex,这里有一些二进制字符串例程:
代码:
def bin_to_int(bin):
return sum([(1 << i) for i, c in enumerate(reversed(bin)) if c == '1'])
def int_to_bin(num):
bin = ''
while num:
bin = '01'[num & 1] + bin
num = num >> 1
return bin
测试代码:
print(bin_to_int('1001'))
print(int_to_bin(bin_to_int('1001')))
产生:
9
1001
关于python - 将二进制转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430487/