gpt4 book ai didi

python - 将二进制转换为十六进制

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:01 25 4
gpt4 key购买 nike

我正在尝试创建一个接受二进制字符串并将其转换为十六进制的函数。到目前为止,我只能创建一个可以将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com