Что такое обратная операция побитового И? - PullRequest
1 голос
/ 16 марта 2011

Как я могу получить a от b и c? Какой будет обратная операция?

Вот код:

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);
    }
}

Ответы [ 2 ]

8 голосов
/ 16 марта 2011

Вы не можете. Если бит в c равен 0, а соответствующий бит в b равен 0, невозможно узнать, был ли соответствующий бит в a равен 0 или 1. По аналогичному аргументу, побитовое ИЛИ (оператор | ) также необратим. С другой стороны, побитовое XOR (оператор ^) является обратимым.

1 голос
/ 16 марта 2011

Если вы посмотрите на таблицу истинности логической операции and, вы увидите, что она содержит три ложных и одно истинное. Поэтому это не может быть полностью изменено.

Только equals и xor имеют сбалансированные таблицы истинности, и они являются двумя обратимыми логическими операторами.

...