I have an int m and an unsigned int j and want to determine whether they are both even or both odd.
In the past I've been using
if((int(j)+m)%2)
to catch the case that only one is odd. But I'm concerned about the casting to int incorrectly changing the odd-even-ness of j.
Do either of these run into problems?
if(!(j%2)!=!(m%2))
if(bool(j%2)!=bool(j%2))
I know that
if(j%2!=m%2)
doesn't work because 'm%2' will produce -1 when m is negative, which will always evaluate to true no matter what the value of j%2 is.