I feel stupid asking such a simple question, but is there an easy way to determine whether an Integer is even or odd?
            Asked
            
        
        
            Active
            
        
            Viewed 3.0k times
        
    6 Answers
27
            It's not android specific, but a standard function would be:
boolean isOdd( int val ) { return (val & 0x01) != 0; }
Many compilers convert modulo (%) operations to their bitwise counterpart automatically, but this method is also compatible with older compilers.
 
    
    
        Abandoned Cart
        
- 4,512
- 1
- 34
- 41
 
    
    
        billjamesdev
        
- 14,554
- 6
- 53
- 76
11
            
            
        You can use modular division (technically in Java it acts as a strict remainder operator; the link has more discussion):
if ( ( n % 2 ) == 0 ) {
    //Is even
} else {
    //Is odd
}
 
    
    
        Community
        
- 1
- 1
 
    
    
        eldarerathis
        
- 35,455
- 10
- 90
- 93
4
            
            
        If you do a bitwise-and with 1, you can detect whether the least significant bit is 1.  If it is, the number is odd, otherwise even.
In C-ish languages, bool odd = mynum & 1;
This is faster (performance-wise) than mod, if that's a concern.
 
    
    
        mtrw
        
- 34,200
- 7
- 63
- 71
- 
                    wouldn't even be true when mynum is odd? – billjamesdev Sep 29 '10 at 21:06
- 
                    I think this is flawed. You need to rename your variable to odd. – Anton Sep 29 '10 at 21:16
- 
                    @Bill, @Anton - sorry, I had posted with the wrong sense for the result. I thought I had edited before anyone caught me... – mtrw Sep 29 '10 at 21:20
1
            
            
        When somehow % as an operator doesn't exist, you can use the AND operator:
oddness = (n & 1) ? 'odd' : 'even'
 
    
    
        littlegreen
        
- 7,290
- 9
- 45
- 51
1
            
            
        Similar to others, but here's how I did it.
boolean isEven = i %2 ==0;
 
    
    
        seekingStillness
        
- 4,833
- 5
- 38
- 68
 
    