我是一名 C 开发人员,需要使用 pyftdi 库访问 FTDI 设备,并且在尝试操作从属设备的远程寄存器时。我发现除了在 Python 中之外,不可能对其他事物执行按位运算(bitshift、NOT、AND 和 OR),int
但我发现 NumPy 库具有启用此类功能的数据类型。我的问题是 NumPy 的资源非常繁重,我想知道是否有替代如此繁重的库的方法。
我已经尝试过BitField
不具备此类功能的 PyFtdi 原生库和两者都没有的 ctypes 库。
这是我不想使用 NumPy 的代码:
def set_bit(variable, bit_ID):
variable |= np.ubyte(1 << bit_ID)
return variable
同样,主要问题不是它不起作用,而是它起作用但在资源上非常繁重,我需要具有位运算符的 8 位变量的功能,而无需总是切换数据类型。
我需要这种变量来避免使用 pyftdi 的函数多次转换我的变量:在 Python-native 中从它获取数据bytes()
并将其转换为int
. 然后使用按位运算符并将输出限制为 8 位。然后转换回bytes()
通过 PYFTDI 的 I2C API 将它们发送回来。