2010-09-29 18 views

Respuesta

16

No es exactamente androide específica, sino una función bastante estándar sería:

boolean isOdd(int val) { return (val & 0x01) != 0; } 
33
if ((n % 2) == 0) { 
    // number is even 
} 

else { 
    // number is odd 
} 
8

Puede utilizar modular division (técnicamente en Java que actúa como una estricta operador de resto, el enlace tiene una mayor discusión):

if ((n % 2) == 0) { 
    //Is even 
} else { 
    //Is odd 
} 
4

Si lo hace un bit a bit y con 1, puede detectar si el bit menos significativo es 1. Si lo es, el número es impar, de lo contrario, incluso.

En lenguajes C-ish, bool odd = mynum & 1;

Esto es más rápido (en cuanto al rendimiento) que mod, si eso es una preocupación.

+0

wouldn ¿Incluso ser verdad cuando mynum es impar? – billjamesdev

+0

Creo que esto es defectuoso. Necesita cambiar el nombre de su variable a impar. – Anton

+0

@Bill, @Anton - lo siento, había publicado con el sentido equivocado para el resultado. Pensé que había editado antes de que alguien me atrapara ... – mtrw

0

Cuando alguna manera % como no existe un operador, puede utilizar el operador AND:

oddness = (n & 1) ? 'odd' : 'even' 
+0

Sí, eso fue un error tipográfico, lo siento! – thomaspaulb

+0

¿no deberían ser comillas dobles? – st0le

Cuestiones relacionadas