Python将二进制字符串转换为十六进制
我想知道怎么把一个二进制字符串转换成对应的十六进制值,在Python中该怎么做?
我有一个二进制字符串0000 0100 1000 1101
,我想得到它的十六进制表示048D
,我使用的是Python 2.6。
13 个回答
27
使用Python的binascii模块
import binascii
binFile = open('somebinaryfile.exe','rb')
binaryData = binFile.read(8)
print binascii.hexlify(binaryData)
35
当然可以!请看下面的内容:
这个问题是关于如何在编程中处理某些特定的情况。提问者想知道在某种情况下,程序应该如何反应,或者说应该采取什么样的措施来解决问题。
通常,程序员会遇到各种各样的挑战,比如代码出错、功能不正常等等。在这种情况下,了解如何调试和解决问题是非常重要的。
提问者可能会提供一些代码示例,帮助大家更好地理解问题所在。通过这些示例,其他人可以看到具体的代码是如何工作的,以及在什么情况下会出现问题。
总之,这个讨论的重点是如何在编程中应对特定的挑战,并找到合适的解决方案。
bstr = '0000 0100 1000 1101'.replace(' ', '')
hstr = '%0*X' % ((len(bstr) + 3) // 4, int(bstr, 2))
98
这里讲的是如何把数字转换成不同的进制,首先是二进制(base 2),然后是十六进制(hex):
>>> int('010110', 2)
22
>>> hex(int('010110', 2))
'0x16'
>>>
>>> hex(int('0000010010001101', 2))
'0x48d'
关于 int
的说明:
int(x[, base]) -> integer Convert a string or number to an integer, if possible. A floating
如果你给的参数是小数,它会被直接截断到零(这不包括小数点后面的部分!)。在把字符串转换成数字时,可以选择进制。如果你给的不是字符串,提供进制就是错误的。如果进制是零,系统会根据字符串的内容来猜测正确的进制。如果给的数字超出了整数的范围,系统会返回一个长整型对象。
关于 hex
的说明:
hex(number) -> string Return the hexadecimal representation of an integer or long
这个函数是用来处理整数的。