1

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 であることを認識しています。私の質問は次のとおりです。代数的には、代数に従ってどのように分布しますか? ウィキペディアの例

4

1 に答える 1

2

2 の補数をビットごとに NOT すると、負の数から 1 を引いたものと!x同じになるため-x - 1、x が単一の変数または式である場合と同じです。

から始めて!(!x+y)、まあそうなる!xでしょう。-x - 1!(-x - 1 + y)-(-x - 1 + y) - 1x - y

そして の場合!(y-1)、それは になり-(y - 1) - 1 = -y + 1 - 1 = -yます。

于 2010-09-10T21:57:02.623 に答える