Domanda

Come posso ottenere a da b e c? Quale sarebbe l'operazione inversa?

Ecco il codice:

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);
    }
}
È stato utile?

Soluzione

Non è possibile. Se un bit in c è 0 e il bit corrispondente b è 0, è impossibile sapere se il bit corrispondente a è 0 o 1. Con un ragionamento simile, OR bit a bit (l'operatore |) è irreversibile. D'altra parte, a bit XOR (l'operatore ^) è reversibile.

Altri suggerimenti

Se si guarda la tabella di verità dell'operazione logica and, si può vedere che esso contiene tre falses e uno vero. Pertanto non può essere invertito.

Solo equals e xor hanno tavole di verità equilibrati, e sono i due operatori booleani reversibili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top