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);
    }
}
¿Fue útil?

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
scroll top