将字符串正确转换为二进制python

2024-04-19 10:44:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串需要转换成二进制。我试过这个:

bin = ''.join(format(ord(x), 'b') for x in strr)

但是结果是错误的长度,因为Python没有保持前导零。例如,它不输出01110100,而是输出1110100。你知道吗

此方法:

temp = '{0:08b}'.format(frame)

不适用于字符串。你知道吗

如何将字符串正确地转换为二进制?你知道吗

编辑:

样本输入:'test'

期望输出:'1110100011001010111001101110100'


Tags: 方法字符串informat编辑forbin错误
1条回答
网友
1楼 · 发布于 2024-04-19 10:44:35

我不确定这是你需要它做的。不如这样吧:

''.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'

相关问题 更多 >