a
を、b
異なる値を持つ正の整数とします。これらの式を単純化する方法はありますか:
bool foo(unsigned a, unsigned b)
{
if (a % 2 == 0)
return (b % 2) ^ (a < b); // Should I write "!=" instead of "^" ?
else
return ! ( (b % 2) ^ (a < b) ); // Should I write "(b % 2) == (a < b)"?
}
戻り値をブール値として解釈しています。