¿Cuál es la operación inversa de bitwise y?
Pregunta
Como puedo conseguir a
de b
y c
? ¿Cuál sería la operación inversa?
Aquí está el código:
class s
{
public static void main(String ar[])
{
int a = 20;
int b = 5;
int c = 0;
c = (a & b) ;
System.out.println(c);
int d = (c & b);
System.out.println(d);
}
}
Solución
No puedes. Si un poco en c
es 0 y el bit correspondiente en b
es 0, es imposible saber si el bit correspondiente en a
fue 0 o 1. por un argumento similar, bitwise o (el |
operador) también es irreversible. Por otro lado, bitwise xor (el ^
operador) es reversible.
Otros consejos
Si miras la tabla de verdad del and
Operación lógica, puede ver que contiene tres falses y una verdadera. Por lo tanto, no se puede revertir.
Solamente equals
y xor
tienen mesas de verdad equilibradas, y son los dos operadores booleanos reversibles.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow