将字符串正确转换为二进制python
我有一个字符串需要转换成二进制。我试过这个:将字符串正确转换为二进制python,python,string,binary,Python,String,Binary,我有一个字符串需要转换成二进制。我试过这个: bin = ''.join(format(ord(x), 'b') for x in strr) 但是结果是错误的长度,因为Python不保持前导零。例如,它输出的不是01110100,而是1110100 此方法: temp = '{0:08b}'.format(frame) 不适用于字符串 如何将字符串正确转换为二进制 编辑: 示例输入:“测试” 所需输出:'1110100011001010111001101110100'我不确定这是否符合您的
bin = ''.join(format(ord(x), 'b') for x in strr)
但是结果是错误的长度,因为Python不保持前导零。例如,它输出的不是01110100
,而是1110100
此方法:
temp = '{0:08b}'.format(frame)
不适用于字符串
如何将字符串正确转换为二进制
编辑:
示例输入:“测试”
所需输出:
'1110100011001010111001101110100'
我不确定这是否符合您的需要。这个怎么样
''.join("{:08b}".format(int(num, 16)) for num in strr.split())
演示
如果您的文本是真正的顺序编码十六进制,那么您就有了一种非常时髦的存储数据的方法,但您可以做到:
''.join("{:08b}".format(ord(num)) for num in strr
演示
“二进制视图”应该是什么意思?输入的预期输出是什么
'74 65 73 74'
?二进制视图-0和1。在我的问题中,十六进制视图(74657374)可能是不需要的。这不是它的复制品,@BurhanKhalid。这里的OP已经知道如何格式化为二进制:问题似乎是如何格式化为零填充的8位字符串
''.join("{:08b}".format(ord(num)) for num in strr
In [42]: strr
Out[42]: '74 65 73 74'
In [43]: ''.join("{:08b}".format(ord(num)) for num in strr)
Out[43]: '0011011100110100001000000011011000110101001000000011011100110011001000000011011100110100'