Unterschied zwischen bitweise inklusive oder und exklusiv oder in Java

8
%Vor%

Ich verstehe zuerst zwei, aber nicht die dritte.

    
PSR 20.05.2013, 04:49
quelle

5 Antworten

16

XOR sagt, ob jedes Bit anders ist.

1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0

Mit anderen Worten "entweder, aber nicht beide"

0011 XOR 0101 = 0110

    
Mel Nicholson 20.05.2013, 04:51
quelle
4

BITWISE INCLUSIVE ODER (|) bedeutet normale oder Operation,

BITWISEE EXKLUSIV ODER (^) bedeutet xor Operation

    
kelum priyadarshane 26.12.2013 05:07
quelle
3

Der dritte ist eine XOR-Operation (Xclusive-OR)

Es besagt, ODER sollte ausschließlich sein: wo ähnlich wird Falsch (0) und unähnlich wird wahr sein (1).

Also wäre 12 in binär 1100

Also, führe hier eine bitweise XOR durch:

%Vor%

Jede Spalte hat dieselbe Ziffer, entweder beide sind 1 oder beide sind 0 XOR sagt, beide sollten anders sein. Daher alle Nullen

    
Lokesh 20.05.2013 04:56
quelle
1

Exklusiv oder ( XOR ) ist definiert als:

%Vor%

Das heißt, es ist 0 , wenn zwei Werte gleich sind, 1 , wenn sie unterschiedlich sind.

Wenn also zwei Bitmuster exakt gleich sind, wird jedes XORed-Bit auf 0 ausgewertet, da jedes Bit entweder 1 in beiden Positionen oder 0 in beiden Positionen hat.

    
Yuushi 20.05.2013 04:54
quelle
-2

Da die von Ihnen verwendeten Operatoren bitweise Operatoren sind, werden die Operanden konvertiert in Bits und dann wirkt der Operator auf sie.

hier 12 - & gt; 1100 in binären Ziffern (Bits)

und die Operationen der Operatoren & amp; (AND), | (OR) und ^ (Exklusiv OR oder XOR) sind wie folgt:

Ein B & amp; | ^

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0

Wenn Sie also 12 ^ 12 ausführen:

A = 1100

B = 1100

A B ^

1 1 0

1 1 0

0 0 0

0 0 0

und 0000 - & gt; 0 im Dezimalsystem

daher erhalten Sie 12 ^ 12 = 0 in Ihrer dritten Antwort

    
quelle