У меня есть int m и unsigned int j и вы хотите определить, являются ли они четными или нечетными.
В прошлом я использовал
if((int(j)+m)%2)
чтобы поймать случай, что только один нечетный. Но меня беспокоит кастинг int, который неправильно меняет нечетную четность j.
У любого из них возникают проблемы?
if(!(j%2)!=!(m%2))
if(bool(j%2)!=bool(j%2))
Я знаю, что
if(j%2!=m%2)
не работает, потому что "m% 2" будет производить -1, когда m отрицательный, который всегда будет оцениваться как true независимо от того, что имеет значение j%2.