2010-09-29 13 views

cevap

16

Belirli tam olarak android değil, ama oldukça standart bir fonksiyon olacaktır:

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

else { 
    // number is odd 
} 
8

kullanabilirsiniz modular division (teknik Java o sıkı kalan operatörü olarak görev yapar; bağlantısı, daha fazla tartışma vardır): Bir yaparsanız

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

üzerinde ikilik-ve 1 ile, algılayabilir en az anlamlı bitin 1 olup olmadığı 1. Varsa, sayı tek, hatta çift. Bu bir endişe ise

C-imsi dilde

, bool odd = mynum & 1;

Bu, mod daha hızlı (epeyce) 'dir.

+0

wouldn mynum tuhaf olduğunda bile doğru değil mi? – billjamesdev

+0

Bence bu kusurlu. Değişkeninizi tek olarak yeniden adlandırmanız gerekiyor. – Anton

+0

@Bill, @Anton - Üzgünüm, sonuç için yanlış anlamıştım. Kimsenin beni yakalamadan önce düzenlediğimi sandım ... – mtrw

0

bir operatör yok gibi, sen VE operatörünü kullanabilirsiniz zaman nasılsa %:

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

evet, bu bir yazım hatasıydı, üzgünüm! – thomaspaulb

+0

çift tırnak olmamalıdır? – st0le