【问题标题】:string to single byte in pythonpython中的字符串到单字节
【发布时间】:2022-01-03 20:54:55
【问题描述】:

我有一个如下所示的 python 字符串:

byte_string = "01100110"

我想把它变成这样的字节:

byte_byte = some_function(byte_string) # byte_byte = 0b01100110

我怎样才能做到这一点?

【问题讨论】:

    标签: python-3.x string byte


    【解决方案1】:

    您似乎想将该字符串转换为单个数字。为此,您只需转换为底数为 2 的 int

    byte_byte = int(byte_string, 2)
    

    【讨论】:

      【解决方案2】:

      在再次思考问题后,我想我最初误解了您的意图,这反映在我下面的“先前答案”中。

      我在想this prior SO question 也可以解决你的问题,因为听起来你想将一个 8 位的字符串转换为一个字节。 而且,正如@Mark Ransom 所指出的那样,它看起来像一个十进制代码:

      int(byte_string, 2)
      output: 102
      

      或者像这样作为对应的ascii字符:

      chr(int(byte_string, 2))
      output: 'f'
      

      ----基于将字符串编码为字节数组的假设的先前答案-----

      您可以像这样将字符串编码为字节,如果需要,可以选择传递特定的编码:

      byte_string = "01100110"
      byte_string.encode("utf-8")
      
      bytes(byte_string, 'utf-8')
      

      结果:

      b'01100110'
      

      Link to python docs for encoding / decoding strings.

      另一种选择是创建一个字节数组:

      bytearray(byte_string, 'utf-8')
      output: bytearray(b'01100110')
      

      这里还有另一个 StackOverflow thread 可能也有帮助,它描述了 bytes 和 bytearray 对象在与字符串之间的转换方面的区别。

      【讨论】:

        猜你喜欢
        • 2021-03-27
        • 2019-02-22
        • 2020-06-20
        • 1970-01-01
        • 1970-01-01
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多