6 Stimmen

Gegenteil der Bitwise OR-Operation

Ich berechne

c = a 'OR' b // bitwise OR operation here

Nun werden nur noch Werte von c y b wie kann ich den ursprünglichen Wert von a ?

24voto

Cambium Punkte 18522

Das ist unmöglich.

Ein einfacher Fall, um meinen Standpunkt zu verdeutlichen (unter der Annahme, dass a, b und c alle 1-Bit sind):

Wenn "b" 1 ist, wird "c" immer 1 sein, der Wert von "a" kann nicht bestimmt werden.

4voto

joeslice Punkte 3402

Sie können nicht zuverlässig zurückgehen. Zum Beispiel: a = 0010 und b = 0011. a ODER b = 0011. Das gleiche Ergebnis gilt, wenn a anders wäre (z. B. 0001 oder 0011).

3voto

Burkhard Punkte 14363

Da a OR 1 immer 1 ist und a OR 0 immer a ist, kann man den Wert von a nur finden, wenn b 0 ist.

Edit: AND und OR sind verlustbehaftete Operationen (können nicht immer rückgängig gemacht werden). XOR und NOT hingegen sind verlustfrei/umkehrbar.

2voto

Guffa Punkte 663241

Das ist nicht möglich, der Vorgang ist nicht umkehrbar. Es gibt viele verschiedene Werte von a, die den gleichen Wert für c ergeben.

Sie können einen möglichen Wert von a erhalten, indem Sie eine und-Operation mit dem Komplement von b durchführen.

a = c & ~b

1voto

Philippe Leybaert Punkte 161931

Das ist nicht möglich. Es gibt keine Möglichkeit zu bestimmen, was 'a' sein wird

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X