我的目标是将二进制值转换为python解释为的“ bytestring”格式。示例:1111111111111111将为0xffff,并在解释时表示为\ xff \ xff \ xff。如果有将其转换为这种格式的更直接的方法,请告诉我,因为这将是理想的选择,到目前为止,我正在使用蛮力解决方案:
hexnum = hex(int("11110100111100001110110101111011",2))
hexstring = str(hexnum)[2:]
finalstr = ""
i = 0
while(i<=len(hexstring)):
finalstr+= hexstring[i:i+2]
finalstr+= "\x"
i=i+2
我的问题是什么时候:
print repr(finalstr)
我收到错误
ValueError:无效的\ x转义
如何正确连接转义符,或者如何将二进制字符串转换为python使用的十六进制字节数组格式?
您可以这样使用binascii.unhexlify
:
>>> import binascii
>>> s = "11110100111100001110110101111011"
>>> binascii.unhexlify(format(int(s, 2), 'x'))
'\xf4\xf0\xed{'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句