int a = 0xFF0;
int b = 0xF0F;
int c = 0x0FF;
c = a = (a ^ b | a & b) ^ c;
System.out.println((c | a) ^ (c & a));
==
Даёт результат 0
распишите мне пошаговый план решения
так как бы вы решили на бумаге, а то ничего не ясно как бы ни старался
по идее необходимо переводить из 16 в 2, но это же дико долго
должен быть способ попроще.
прошу Вашей помощи
"Я ленивый и ничего не хочу делать. Сделайте за меня." –так вы ни к чему не придёте.
Сконвертить из 16 -> 2 буквально пару секунд или в гугле забанили? А там уж загуглить принцип работы и приоритет логических операций не должно быть проблемой
Не надо тут ничего конвертировать, тут нужно смотреть на булеву логику.
А именно на (c | a) ^ (c & a) . Если c=a это выражение всегда дает 0. Поскольку если с=a=1 то слева будет 1 и справа будет 1, то операция xor вернет 0. Для 0 слева и справа будет 0, xor тоже 0 )