syl*_*ain 50 python binary hex
如何在Python中将二进制字符串转换为相应的十六进制值?
我有0000 0100 1000 1101,我想让048D我使用Python 2.6.
Eli*_*sky 60
int给定基数2然后hex:
>>> int('010110', 2)
22
>>> hex(int('010110', 2))
'0x16'
>>>
>>> hex(int('0000010010001101', 2))
'0x48d'
Run Code Online (Sandbox Code Playgroud)
文件int:
Run Code Online (Sandbox Code Playgroud)int(x[, base]) -> integer Convert a string or number to an integer, if possible. A floatingpoint参数将被截断为零(这不包括浮点数的字符串表示!)转换字符串时,请使用可选的base.转换非字符串时提供基数是错误的.如果base为零,则根据字符串内容猜测正确的base.如果参数超出整数范围,则将返回长对象.
文件hex:
Run Code Online (Sandbox Code Playgroud)hex(number) -> string Return the hexadecimal representation of an integer or long整数.
Ign*_*ams 26
bstr = '0000 0100 1000 1101'.replace(' ', '')
hstr = '%0*X' % ((len(bstr) + 3) // 4, int(bstr, 2))
Run Code Online (Sandbox Code Playgroud)
use*_*040 14
使用python的binascii模块
import binascii
binFile = open('somebinaryfile.exe','rb')
binaryData = binFile.read(8)
print binascii.hexlify(binaryData)
Run Code Online (Sandbox Code Playgroud)
小智 6
将二进制转换为十六进制而不忽略前导零:
您可以使用format()内置函数,如下所示:
"{0:0>4X}".format(int("0000010010001101", 2))
Run Code Online (Sandbox Code Playgroud)