Set a bit.
0.bit(4) #=> 16
Using a negative figure will clear a bit.
10.bit(-4) #=> 2
This is more easily seen using binary.
0b0100.bit(-3) #=> 0
CREDIT: Thomas Sawyer, George Moschovitis
# File lib/facets/core/facets/integer/bitmask.rb, line 17 def bit(bit) if bit < 0 mask = (1 << ~bit) self & ~mask else mask = (1 << bit) self | mask end end
Returns true if this integer is even, false otherwise.
2.even? #=> true 3.even? #=> false
CREDIT: Daniel Schierbeck
# File lib/facets/core/facets/integer/odd.rb, line 30 def even? self & 1 == 0 #self % 2 == 0 end
Returns true if this integer is odd, false otherwise.
2.odd? #=> false 3.odd? #=> true -99.odd? # -> true -98.odd? # -> false
CREDIT: Daniel Schierbeck
# File lib/facets/core/facets/integer/odd.rb, line 15 def odd? self & 1 == 1 #self % 2 == 1 end