Определение четных / нечетных чисел (целых чисел)? - PullRequest
10 голосов
/ 30 сентября 2010

Я чувствую себя глупо, задавая такой простой вопрос, но есть ли простой способ определить, является ли целое число четным или нечетным?

Ответы [ 6 ]

34 голосов
/ 30 сентября 2010
if ((n % 2) == 0) {
    // number is even
}

else {
    // number is odd
}
17 голосов
/ 30 сентября 2010

Это не специфично для Android, но стандартной функцией будет:

boolean isOdd( int val ) { return (val & 0x01) != 0; }

Многие компиляторы автоматически преобразуют операции по модулю (%) в их побитовый аналог, но этот метод также совместим со старыми компиляторами.

9 голосов
/ 30 сентября 2010

Вы можете использовать модульное деление (технически в Java это действует как оператор строгого остатка; ссылка имеет более подробное обсуждение):

if ( ( n % 2 ) == 0 ) {
    //Is even
} else {
    //Is odd
}
4 голосов
/ 30 сентября 2010

Если вы выполняете битовую операцию - и с помощью 1 вы можете определить, равен ли младший значащий бит 1. Если это так, число является нечетным, в противном случае четным.

В языках C-ish,bool odd = mynum & 1;

Это быстрее (с точки зрения производительности), чем mod, если это вызывает опасения.

1 голос
/ 30 сентября 2010

Когда как-либо % как оператор не существует, вы можете использовать оператор AND:

oddness = (n & 1) ? 'odd' : 'even'
0 голосов
/ 29 марта 2019

Как и у других, но вот как я это сделал.

boolean isEven = i %2 ==0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...