如何在Python中将位字符串转换为十六进制字符串?
我有一个32个字符组成的二进制字符串,想在Python中把它转换成十六进制的表示。比如说,这个字符串是 "10000011101000011010100010010111"
,我希望它的输出结果是 "83A1A897"
。
有没有什么好的方法可以在Python中做到这一点呢?
5 个回答
2
你可以很简单地使用内置的函数来完成这个任务。首先,你需要把二进制数转换成整数:
>> int("1010",2)
10
第二步就是把这个整数表示成十六进制:
>> "%04X" % int("1010",2)
'000A'
如果你不想让十六进制字符串有固定的长度,那就直接使用:
>> "%X" % int("1010",2)
'A'
>> "0x%X" % int("1010",2)
'0xA'
3
>>> binary = '10010111'
>>> int(binary,2)
151
>>> hex(int(binary,2))
'0x97'
我希望这能帮到你!
24
要把数字格式化成十六进制,你可以使用 hex 函数:
>>> hex(int('10000011101000011010100010010111', 2))
0x83a1a897
或者如果你想要得到你指定的确切格式:
>>> '%08X' % int('10000011101000011010100010010111', 2)
83A1A897