Python 中的快速按位 (a & ~b)、~(a & b) 等

问题描述 投票:0回答:1

是否有现有的Python库直接支持所有整数的二进制按位运算?

Python 有 二元按位运算“与”(a & b)、“异或”(a ^ b)、“或”(a | b)和 一元“非”(~ a)。 (a & ~b)、(a | ~b)、(a ^ ~b)、~(a & b)、~(a | b) 等公式涉及两个或多个运算,效率较低。我正在寻找一个现有的库,每个库都有一个操作, (a & ~b) 与 (a & b) 一样快,依此类推。

python performance bitwise-operators
1个回答
0
投票

与其他运算符相比,Python 的内置按位运算符非常高效。你可以像这样使用 cretae 函数

def and_not(a, b):
    return a & ~b

def or_not(a, b):
    return a | ~b

def xor_not(a, b):
    return a ^ ~b

def not_and(a, b):
    return ~(a & b)

def not_or(a, b):
    return ~(a | b)

如果你想探索库,请尝试 numpy

import numpy as np

def and_not(a, b):
    return np.bitwise_and(a, np.bitwise_not(b))

def or_not(a, b):
    return np.bitwise_or(a, np.bitwise_not(b))

...
© www.soinside.com 2019 - 2024. All rights reserved.