2010-09-29 13 views

Antwort

16

Es ist nicht gerade android spezifisch, sondern eine ziemlich Standard-Funktion wäre:

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

else { 
    // number is odd 
} 
8

können Sie verwenden modular division (technisch in Java wirkt es als strenge Restoperator, der Link mehr Diskussion hat):

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

Wenn Sie ein tun bitweise und mit 1, können Sie erkennen, ob das niedrigstwertige Bit 1 ist. Wenn dies der Fall ist, ist die Zahl ungerade, ansonsten gerade.

In C-ish Sprachen sind bool odd = mynum & 1;

Diese schnellere (Performance-weise) als mod, wenn das ein Problem ist.

+0

wouldn Stimmt es nicht, wenn Mynum seltsam ist? – billjamesdev

+0

Ich denke, das ist fehlerhaft. Sie müssen Ihre Variable in ungerade umbenennen. – Anton

+0

@Bill, @Anton - Entschuldigung, ich hatte mit dem falschen Sinn für das Ergebnis gepostet. Ich dachte, ich hätte es bearbeitet, bevor mich jemand erwischt hätte ... – mtrw

0

Wenn irgendwie % als ein Operator, ist nicht vorhanden Sie den AND-Operator verwenden:

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

Ja, das war ein Tippfehler, Entschuldigung! – thomaspaulb

+0

sollte es nicht doppelte Anführungszeichen sein? – st0le