2010-09-29 115 views

回答

16

这不完全的Android特有的,但一个相当标准的功能是:

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

else { 
    // number is odd 
} 
8

您可以使用modular division(技术上在Java中它作为一个严格余运算符,链接有更多的讨论):

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

如果你做一个按位与1,可以检测是否最低有效位是1.如果是,则数字为奇数,否则为偶数。

在C-ISH语言,bool odd = mynum & 1;

这是更快(性能明智)比mod,如果这是一个问题。

+0

止跌当mynum很奇怪时,甚至不会这样吗? – billjamesdev 2010-09-29 21:06:37

+0

我认为这是有缺陷的。您需要将您的变量重命名为奇数。 – Anton 2010-09-29 21:16:18

+0

@Bill,@Anton - 抱歉,我发布的结果错误。我以为我编辑之前有人抓到我... – mtrw 2010-09-29 21:20:55

0

在某种程度上%作为一个经营者不存在,你可以使用AND运算符:

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

是的,这是一个错字,对不起! – thomaspaulb 2010-09-29 21:35:35

+0

不应该是双引号? – st0le 2010-10-01 12:04:26