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

发布于 2024-09-18 07:15:35 字数 475 浏览 7 评论 0原文

我发现了一些练习,您可以以不同的方式组合 n 位 2 的补码值并尽可能简化输出。 (他们的练习使用 16 位,但这无关紧要)。

例如:
!(!x&!y) == x|y
<代码>0 & y, 否定输出 == -1

我在使用 AND、OR 和 NOT 的示例中应用德摩根定律没有问题,但在 + 和 - 中使用 NOT 时遇到困难,

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

如何不分发?

编辑:回应评论:我意识到这是一个按位非。我的问题是:用代数术语来说,它是如何按照代数分布的? 维基百科上的示例

I found some exercises where you combine n-bit 2's complement values in different ways and simplify the output where possible. (Their practice exercises use 16-bit, but that's irrelevant).

Eg:

!(!x&!y) == x|y

0 & y, negate the output == -1

I'm having no problem applying De Morgan's laws with the examples using AND, OR, and NOT but I am having difficulty using NOT with + and -

Eg:

!(!x+y) == x-y

!(y-1) == -y

How does NOT distribute?

Edit: responding to comments: I realize this is a bitwise NOT. My question is: in algebraic terms, how does it distribute as per algebra? Example on Wikipedia

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枫林﹌晚霞¤ 2024-09-25 07:15:36

对于 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

With 2's complement numbers when you bitwise NOT them it is the same as saying the negative of the number minus 1, so !x is equivalent to -x - 1 where x can be a single variable or an expression.

Starting with !(!x+y), well !x is going to be -x - 1 so then it is !(-x - 1 + y) which becomes -(-x - 1 + y) - 1 which simplifies to x - y.

And for !(y-1), that becomes -(y - 1) - 1 = -y + 1 - 1 = -y.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文