【问题标题】:python convert bit hex to binarypython将位十六进制转换为二进制
【发布时间】:2018-03-09 02:44:03
【问题描述】:

好的,我对 python 相当陌生,但不是编程,我知道 php、C、bash 等...我的问题是: 我如何转换data = "b'\x16'" to binary "0001 0110" ?? 我试图从 DLE 读取 esc 打印机的响应

    x = 1
    while x:
       time.sleep(3)
       ser.write("\x10\x04\x01".encode())
       bytesToRead = ser.inWaiting()
       data = ser.read(bytesToRead)
       while data:
          print(data)
          data = ""

所有最终打印的是:b'\x16'我假设是十六进制,但由于 b 的原因,一个简单的二进制到 bin 不起作用?

【问题讨论】:

  • 您的while data: 放错地方了吗?它在哪里有点没用。
  • 它只是为了测试结果相同
  • print(bin(int.from_bytes(data, byteorder="big")).strip('0b')) 类似的东西?但这看起来也不对

标签: python binary hex encode


【解决方案1】:

你得到的是一个bytes 对象。 (想想:原始字节数组)您可以通过data[0] 从第一个字节获取数字本身。这将为您提供0x16 作为int,您可以随意转换。

【讨论】:

  • 好的,有道理,我没有意识到数据是作为数组返回的......所以像print(bin(data[0]).strip('0b'))
  • @JeffreyWorsley 你不想这样 - '0b010'.strip('0b') == '1'。也许bin(data[0])[2:] 代替。
猜你喜欢
  • 2012-01-06
  • 2016-09-15
  • 2012-06-26
  • 2013-12-26
  • 2016-08-28
  • 2013-07-25
相关资源
最近更新 更多