如何在 Python 中进行按位非运算?

2024-03-30

为了测试使用更基本的构建块(在我的例子中使用 Nand、Or 和 And)构建 Xor 操作,我需要能够执行 Not 操作。内置的not似乎只用单个位来做到这一点。如果我做:

x = 0b1100
x = not x

我应该得到0b0011但我只是得到0b0。我究竟做错了什么?或者Python只是缺少这个基本功能?

我知道 Python 有一个内置的 Xor 函数,但我一直在使用 Python 来测试需要构建 Xor 门的 HDL 项目/课程。我想在 Python 中对此进行测试,但如果没有与非门等效的东西,我就无法进行测试。


使用时出现的问题~在 Python 中,它可以处理有符号整数。这也是唯一真正有意义的方法,除非您将自己限制在特定的位数。它will按位数学可以正常工作,但它可能会使解释中间结果变得困难。

对于 4 位逻辑,您应该只减去0b1111

0b1111 - 0b1100  # == 0b0011

对于 8 位逻辑,减去0b11111111 etc.

一般形式是

def bit_not(n, numbits=8):
    return (1 << numbits) - 1 - n
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中进行按位非运算? 的相关文章

随机推荐