将字符串正确转换为二进制 python
correct convert string to bynary python
我有一个字符串需要转换成二进制。我试过这个:
bin = ''.join(format(ord(x), 'b') for x in strr)
但是结果是错误的长度,因为 Python 没有保留前导零。例如,它输出 1110100
而不是 01110100
。
此方法:
temp = '{0:08b}'.format(frame)
不适用于字符串。
如何正确地将字符串转换为二进制?
编辑:
示例输入:'test'
期望输出:'1110100011001010111001101110100'
我不确定这是不是在做您需要它做的事情。这个怎么样:
''.join("{:08b}".format(int(num, 16)) for num in strr.split())
演示
In [34]: strr
Out[34]: '74 65 73 74'
In [35]: ''.join("{:08b}".format(int(num, 16)) for num in strr.split())
Out[35]: '01110100011001010111001101110100'
如果您的文本真的是序号编码的十六进制,那么您就有了一种非常时髦的数据存储方式,但您可以这样做:
''.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'
我有一个字符串需要转换成二进制。我试过这个:
bin = ''.join(format(ord(x), 'b') for x in strr)
但是结果是错误的长度,因为 Python 没有保留前导零。例如,它输出 1110100
而不是 01110100
。
此方法:
temp = '{0:08b}'.format(frame)
不适用于字符串。
如何正确地将字符串转换为二进制?
编辑:
示例输入:'test'
期望输出:'1110100011001010111001101110100'
我不确定这是不是在做您需要它做的事情。这个怎么样:
''.join("{:08b}".format(int(num, 16)) for num in strr.split())
演示
In [34]: strr
Out[34]: '74 65 73 74'
In [35]: ''.join("{:08b}".format(int(num, 16)) for num in strr.split())
Out[35]: '01110100011001010111001101110100'
如果您的文本真的是序号编码的十六进制,那么您就有了一种非常时髦的数据存储方式,但您可以这样做:
''.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'