Class: Integer
Instance Method Summary collapse
Instance Method Details
#logical_shift_right(positions = 1, bit_size = 32) ⇒ Object Also known as: lsr
36 37 38 39 40 41 42 43 |
# File 'lib/amber/fukubukuro.rb', line 36 def logical_shift_right positions = 1, bit_size = 32 raise ArgumentError, 'negative argument for logical_shift_right' if positions < 0 positions = positions.to_i if positions.is_a? Float positions = bit_size if positions > bit_size bits = (0...bit_size).map { |i| self[i] }.reverse bits = [0] * positions + bits[0, bit_size - positions] bits.join.to_i(2) end |