使用逻辑NOT混合加法和减法

时间:2010-09-10 21:31:36

标签: boolean-logic

我找到了一些练习,你可以用不同的方式组合n位2的补码值,并在可能的情况下简化输出。 (他们的练习练习使用16位,但这无关紧要)。

例如:
!(!x&!y) == x|y
0 & y, negate the output == -1

使用AND,OR和NOT将示例应用于De Morgan定律没有问题,但是我很难使用NOT和+ -

例如:
!(!x+y) == x-y
!(y-1) == -y

如何分发?

编辑:回复评论:我意识到这是一个按位NOT。我的问题是:在代数方面,它如何按代数分布? Example on Wikipedia

1 个答案:

答案 0 :(得分:2)

当你按位时使用2的补数而不是它们与数字减1的负数相同,因此!x相当于-x - 1其中x可以是单个变量或表达式

!(!x+y)开始,!x一般为-x - 1,因此!(-x - 1 + y)变为-(-x - 1 + y) - 1,简化为x - y

对于!(y-1),它变为-(y - 1) - 1 = -y + 1 - 1 = -y