Подтвердить что ты не робот

Оператор Java XNOR

Я занимаюсь некоторыми исследованиями, и я написал несколько простых программ в java, которые соответствуют моим потребностям. Я использовал логические операторы AND, OR, XOR для целых чисел, но я пропустил оператор XNOR. То, что я ищу, - это оператор XNOR, который ведет себя так же, как и другие, упомянутые (могут применяться к целым числам). Возможно ли кому-нибудь написать такой класс на Java?

4b9b3361

Ответ 1

boolean xnor(boolean a, boolean b) {
    return !(a ^ b);
}

или даже проще:

boolean xnor(boolean a, boolean b) {
    return a == b;
}

Если вы действительно говорите о побитовых операторах (вы говорите, что работаете на int), вам понадобится вариант первого фрагмента:

int xnor(int a, int b) {
    return ~(a ^ b);
}

Ответ 2

Логическим оператором XNOR является ==.

Вы имеете в виду побитовое?

Ответ 3

Оператор A==B или !(A^B).

Ответ 4

if (!a ^ b) doSomething();

Он дает тот же результат, поэтому вам не нужно использовать скобки.

И я предпочел бы XOR-ворота больше, поскольку ошибка, вероятно, будет сделана, если вы случайно используете = где-то, что должно быть ==.

if (a = b) doSomething(); // performs like "if (b) doSomething();"

Побитовая версия.

someInt = ~a ^ b