Python特殊字符转二进制问题:%字符输出位数不符求解决
解决方法:给二进制字符串补前导零
嘿,这个问题很好解决!你的函数里format(x, 'b')默认只会输出不带前导零的二进制字符串,而你想要的是固定7位长度的二进制结果,所以只需要修改格式化参数,让它自动补前导零到指定长度就可以了。
修改后的函数
把format(x, 'b')改成format(x, '07b'),其中:
0表示用零来填充空位7表示最终的二进制字符串总长度为7位b表示输出二进制格式
修改后的完整代码:
def to_bin(s): return ' '.join(format(x, '07b') for x in bytearray(s))
测试验证
运行修改后的函数,就能得到你预期的结果:
>>> to_bin('%') '0100101'
额外说明
如果你需要的是8位的完整字节二进制表示,只需要把07b改成08b,这样输出的就是00100101,适合需要标准字节长度的场景。
内容的提问来源于stack exchange,提问作者AntoineLB
相关产品推荐
相关产品推荐

