-7

昨日受け取った回答からコードを理解しようとしています:

2nd:ビット単位の NOR ゲートの作成
方法 1st: Python でビット単位の NOR ゲートを実行する方法 (python maths を編集して動作するようにします)

a=0b01100001
b=0b01100010

bin((a ^ 0b11111111) & (b ^ 0b11111111))

私は今、以下を除くすべてを理解しています:

&2 つの値の間

そして^ 11111111 (私はそれ0bがベースであることを知っています2

誰かがこれらを説明してもらえますか?

4

1 に答える 1

1

どのようにNOR動作しますか?

式は、、、およびx NOR yを使用して分割できます。ANDORNOT

x NOR y == NOT(x OR y) == NOT(x) AND NOT(y)

したがって、指定された値について:

a=0b01100001
b=0b01100010

a NOR bでしょうNOT(a) AND NOT(b)。今、あなたはどのように行うと思いますかNOT(a)?ビットを反転するだけです。ビットを反転する方法は何ですか? アンXOR(^)。どのように?

0 ^ 1 == 1
1 ^ 1 == 0

したがって、XOR任意のビットをで取得すると、1そのビットが反転します。すなわちNOT(somebit) == a XOR somebit。したがって、あなたの場合、XOR各ビットaを取得するだけで、b次のようになります。1NOT

   01100001
^  11111111
------------
   10011110

つまり、XORwithを実行し11111111ます。1'sの数は のビット数と同じであることに注意してくださいa

それを一緒に入れて:

NOT(a) = a ^ 0b11111111
NOT(b) = b ^ 0b11111111

NOTのが得られたので、 を実行しましょう。それで、何をする方法は何ですか?ビットごとに実行するだけです。abANDAND&

それはとても簡単です:

NOT(a) AND NOT(b) == (a ^ 0b11111111) & (b ^ 0b11111111)
于 2013-10-06T13:37:43.820 に答える