Все это сводится к знанию ваших корней.
Да, технически это старая техника, и я, вероятно, сделал бы то, что другие люди предложили в этом вопросе, и использовал бы оператор по модулю (%) для определения нечетного или четного.
Но понимание того, что является дополнением 1s (или дополнением 2s), всегда полезно знать. Независимо от того, используете ли вы их когда-либо, ваш процессор постоянно работает с этими вещами. Так что никогда не помешает понять концепцию. Теперь современные системы делают это таким образом, что вам, как правило, никогда не придется беспокоиться о таких вещах, так что это стало темой для курса «Программирование 101». Но вы должны помнить, что некоторые люди все равно будут использовать это в «реальном мире» ... например, вопреки распространенному мнению, есть люди, которые все еще используют ассемблер! Не так много, но пока процессоры не смогут понимая сырой C # и Java, кто-то все равно должен будет разобраться в этом.
И, черт возьми, вы никогда не знаете, когда вы можете обнаружить, что вы делаете что-то, где вам действительно нужно выполнить двоичную математику, и это дополнение 1 может пригодиться.