Sha256: 6724fc09aebfb5d5ee4ff4d40b02e73c0a9f5c4f54528f2f8466d681ffb3ec70

Contents?: true

Size: 346 Bytes

Versions: 5

Compression:

Stored size: 346 Bytes

Contents

unless Bignum.method_defined? :bit_length
  require 'backports/2.0.0/range/bsearch'
  class Bignum
    def bit_length
      n = 8 * (size - 42.size)
      smaller = self >> n
      if smaller >= 0
        smaller += 1
      else
        smaller = -smaller
      end
      n + (0...8 * 42.size).bsearch{|i| smaller <= (1 << i) }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
backports-3.6.4 lib/backports/2.1.0/bignum/bit_length.rb
backports-3.6.3 lib/backports/2.1.0/bignum/bit_length.rb
backports-3.6.2 lib/backports/2.1.0/bignum/bit_length.rb
backports-3.6.1 lib/backports/2.1.0/bignum/bit_length.rb
backports-3.6.0 lib/backports/2.1.0/bignum/bit_length.rb