У меня есть 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
.