Это небольшая хитрость: каждое двоичное число, у которого младший значащий бит равен 0, является четным и нечетным в противном случае. Это потому, что степени двух равны 1,2,4,8,16,...
, поэтому происходит то, что когда вы выполняете битовую операцию И с 1, вы получаете 0, если младший значащий бит был 0 и 1 в противном случае. Таким образом, вы можете легко распознать число, если даже сделав это.
Конечно, это работает только потому, что арифметика, используемая в процессорах, является двоичной, иначе это будет просто дерьмо.
просто пример
161 = 10100001 &
1 = 00000001
--------------
00000001 -> odd
ViceVersa
84 = 01010100 &
1 = 00000001
--------------
00000000 -> even