Я пытаюсь найти самый эффективный способ записать логический элемент XNOR в C.
if(VAL1 XNOR VAL2)
{
BLOCK;
}
Какие-либо предложения?
Спасибо.
if(!(val1^val2))
{
block;
}
edit: вне логических операций, вы вероятно захотите ~(val1^val2)
, чтобы быть точным, но я нахожу ! более понятным.
Предполагая, что val1
и val2
будут рассматриваться в обычной логической булевой манере языка Си (ненулевое значение истинно), тогда:
if (!val1 ^ !!val2)
{
}
подойдет.
С двумя операндами это довольно просто:
if (val1 == val2)
{
block;
}