将加法和减法与逻辑 NOT 混合使用
我发现了一些练习,您可以以不同的方式组合 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于 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 tox - y
.And for
!(y-1)
, that becomes-(y - 1) - 1 = -y + 1 - 1 = -y
.