【问题标题】:How to enter decimal/binary numbers when creating byte objects in python?在 python 中创建字节对象时如何输入十进制/二进制数?
【发布时间】:2011-02-06 13:11:18
【问题描述】:

我正在使用 python 3.1.1。

我知道我可以使用 b'...' 形式的字节文字创建字节对象。在这些字节对象中,每个字节都可以表示为一个字符(如果我没记错的话,使用 ascii 代码)或十六进制/八进制数。十六进制数和八进制数可以使用转义符 \x 输入十六进制数,仅使用 \ 表示八进制数。

但是,十进制或二进制数没有转义序列。有没有办法将它们输入到字节对象中?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以使用内置的bytes 构造函数将整数序列转换为字节字符串:

    >>> bytes((7,8,9,10,11))
    b'\x07\x08\t\n\x0b'
    >>> bytes(range(7,12))
    b'\x07\x08\t\n\x0b'
    >>> bytes((0b1,0b0,0b1))
    b'\x01\x00\x01'
    

    【讨论】:

    • 谢谢!这正是我想要做的。我完全忘记了使用这些类型的函数来初始化变量。
    【解决方案2】:

    你可以对整数使用二进制字面量

    >>> b = bytearray(b'abc')
    >>> b[0] = 0b1001 # `9` decimal (TAB)
    >>> b
    bytearray(b'\tbc')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-04
      • 2014-02-13
      • 2015-08-05
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      相关资源
      最近更新 更多