【问题标题】:Bitwise operation in pythonpython中的按位运算
【发布时间】:2017-07-01 21:28:36
【问题描述】:

有一种可用于执行按位运算的解决方案。但是,它将整数转换为二进制数,然后进行按位运算。我已经有了二进制格式的数字。如何对这些数字执行按位运算? 前任。 x = 10101, y = 11001 我希望 z = x 或 y 为 11101。 非常感谢任何帮助。

【问题讨论】:

    标签: python python-3.x bit-manipulation


    【解决方案1】:

    您可以将十进制 10101 转换为二进制 10101,方法是将其转换为字符串,然后再转换为 int(.., 2)(2 => 基数 2):

    >>> str(x)
    '10101'
    >>> int(str(x), 2)
    21
    

    做你想要的操作(| => 按位或):

    >>> int(str(x), 2) | int(str(y), 2)
    29
    

    然后,使用format(或str.format,格式字符串b -> 表示二进制表示)和int,将其转换回十进制:

    >>> format(int(str(x), 2) | int(str(y), 2), 'b')
    '11101'
    >>> int(format(int(str(x), 2) | int(str(y), 2), 'b'))  # back to integer
    11101
    

    【讨论】:

      猜你喜欢
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多