2010-09-29 42 views

risposta

16

Non è esattamente Android specifica, ma una funzione piuttosto standard sarebbe:

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

else { 
    // number is odd 
} 
8

È possibile utilizzare modular division (tecnicamente in Java agisce come un rigoroso operatore di resto; il collegamento è più discussione):

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

Se fate un bit-e con 1, è possibile rilevare se il bit meno significativo è 1. Se lo è, il numero è dispari, altrimenti pari.

Nei linguaggi C-ish, bool odd = mynum & 1;

questo è più veloce (performance-saggio) rispetto mod, se è una preoccupazione.

+0

wouldn essere anche vero quando mynum è strano? – billjamesdev

+0

Penso che questo sia difettoso. È necessario rinominare la variabile in modo dispari. – Anton

+0

@Bill, @Anton - scusate, avevo postato con il significato sbagliato per il risultato. Pensavo di averlo modificato prima che qualcuno mi catturasse ... – mtrw

0

Quando in qualche modo % come operatore non esiste, è possibile utilizzare l'operatore AND:

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

sì, quello era un errore di battitura, scusa! – thomaspaulb

+0

non dovrebbero essere le doppie virgolette? – st0le