Какова обратная операция побитовой и?
Вопрос
Как я могу получить 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);
}
}
Решение
Вы не можете. Если немного в c
равно 0 и соответствующий бит в b
0, невозможно узнать, соответствует ли соответствующий бит в a
было 0 или 1. с аналогичным аргументом, побитовым или ( |
оператор) также необратимо. С другой стороны, бить XOR ( ^
оператор) является обратимый.
Другие советы
Если вы посмотрите на таблицу истины and
Логическая операция, вы можете видеть, что она содержит три фальсии и один истин. Поэтому это не может быть изменено.
Только equals
а также xor
иметь сбалансированные таблицы правды, и они являются двумя обратимыми логическими операторами.
Не связан с StackOverflow