【问题标题】:correct convert string to bynary python正确将字符串转换为二进制python
【发布时间】:2015-05-21 05:01:25
【问题描述】:

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

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

但结果是错误的长度,因为 Python 不保留前导零。例如,它输出1110100,而不是01110100

这个方法:

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

不适用于字符串。

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

编辑:

示例输入:'test'

所需输出:'1110100011001010111001101110100'

【问题讨论】:

  • 什么是“二元视图”?
  • 输入'74 65 73 74' 的期望输出是什么?
  • 二进制视图 - 0 和 1。在我的问题中可能不需要十六进制视图 (74 65 73 74)。
  • 这不是重复的,@BurhanKhalid。这里的 OP 已经知道如何格式化为二进制:问题似乎是如何格式化为零填充的 8 位字符串。
  • 试试这个测试=74657374 bin(test)[2:]

标签: python string binary


【解决方案1】:

我不确定这是否符合您的要求。这个怎么样:

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

【讨论】:

    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2021-02-24
    • 2017-05-26
    • 2020-06-20
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多