Однажды я написал целочисленную библиотеку произвольной точности на C ++. и%, и & были перегружены так, что они сделали то, что вы ожидаете, только на действительно больших целых. Произвольная точность по модулю очень сложна, в то время как битовые тесты произвольной точности - нет. Из-за этого понимания я всегда предпочитаю (n & 1), так как я знаю, что происходит за кулисами. Конечно, вы можете сказать, что умный компилятор может оптимизировать (n% 2) к тому же набору команд, что и (n & 1), но на самом деле вы имеете в виду «я делаю это неправильно, используя%, и надеюсь, что мой компилятор умнее Я." Не обращайте внимания на комментарии, которые легче понять (n% 2). Оказывается (н & 1) тоже довольно легко понять (ну, может, не для моей бабушки). Используйте &, это правильный путь.