PATH:
opt
/
alt
/
ruby34
/
share
/
ri
/
system
/
Integer
U:RDoc::AnyMethod[iI"bit_length:ETI"Integer#bit_length;TF:publico:RDoc::Markup::Document:@parts[ o:RDoc::Markup::Paragraph; [ I"8Returns the number of bits of the value of +self+, ;TI"8which is the bit position of the highest-order bit ;TI")that is different from the sign bit ;TI";(where the least significant bit has bit position 1). ;TI"?If there is no such bit (zero or minus one), returns zero.;To:RDoc::Markup::BlankLine o; ; [I"KThis method returns <tt>ceil(log2(self < 0 ? -self : self + 1))</tt>>.;T@o:RDoc::Markup::Verbatim; [I")(-2**1000-1).bit_length # => 1001 ;TI")(-2**1000).bit_length # => 1000 ;TI")(-2**1000+1).bit_length # => 1000 ;TI"'(-2**12-1).bit_length # => 13 ;TI"'(-2**12).bit_length # => 12 ;TI"'(-2**12+1).bit_length # => 12 ;TI"&-0x101.bit_length # => 9 ;TI"&-0x100.bit_length # => 8 ;TI"&-0xff.bit_length # => 8 ;TI"&-2.bit_length # => 1 ;TI"&-1.bit_length # => 0 ;TI"&0.bit_length # => 0 ;TI"&1.bit_length # => 1 ;TI"&0xff.bit_length # => 8 ;TI"&0x100.bit_length # => 9 ;TI"'(2**12-1).bit_length # => 12 ;TI"'(2**12).bit_length # => 13 ;TI"'(2**12+1).bit_length # => 13 ;TI")(2**1000-1).bit_length # => 1000 ;TI")(2**1000).bit_length # => 1001 ;TI")(2**1000+1).bit_length # => 1001 ;T:@format0o; ; [I"For \Integer _n_, ;TI">this method can be used to detect overflow in Array#pack:;T@o;; [ I"if n.bit_length < 32 ;TI"$ [n].pack('l') # No overflow. ;TI" else ;TI" raise 'Overflow' ;TI"end;T; 0: @fileI"numeric.rb;T:0@omit_headings_from_table_of_contents_below0I"bit_length -> integer ;T0[ I"();T@8FI"Integer;TcRDoc::NormalClass00
[-] chr-i.ri
[edit]
[-] coerce-i.ri
[edit]
[-] to_f-i.ri
[edit]
[-] bit_length-i.ri
[edit]
[-] %2d-i.ri
[edit]
[-] anybits%3f-i.ri
[edit]
[-] integer%3f-i.ri
[edit]
[-] allbits%3f-i.ri
[edit]
[-] upto-i.ri
[edit]
[-] magnitude-i.ri
[edit]
[-] size-i.ri
[edit]
[-] %7c-i.ri
[edit]
[-] try_convert-c.ri
[edit]
[-] %3c%3c-i.ri
[edit]
[-] to_s-i.ri
[edit]
[-] %2a-i.ri
[edit]
[-] %3c%3d-i.ri
[edit]
[-] nobits%3f-i.ri
[edit]
[-] %3c-i.ri
[edit]
[-] numerator-i.ri
[edit]
[-] %3c%3d%3e-i.ri
[edit]
[-] rationalize-i.ri
[edit]
[-] modulo-i.ri
[edit]
[-] remainder-i.ri
[edit]
[-] ceil-i.ri
[edit]
[-] to_r-i.ri
[edit]
[-] sqrt-c.ri
[edit]
[-] cdesc-Integer.ri
[edit]
[-] %2a%2a-i.ri
[edit]
[-] %26-i.ri
[edit]
[-] downto-i.ri
[edit]
[-] %3e-i.ri
[edit]
[-] floor-i.ri
[edit]
[-] divmod-i.ri
[edit]
[-] round-i.ri
[edit]
[-] to_int-i.ri
[edit]
[-] %2d%40-i.ri
[edit]
[-] denominator-i.ri
[edit]
[-] %2f-i.ri
[edit]
[-] abs-i.ri
[edit]
[-] zero%3f-i.ri
[edit]
[-] %3d%3d%3d-i.ri
[edit]
[-] to_bn-i.ri
[edit]
[-] odd%3f-i.ri
[edit]
[-] times-i.ri
[edit]
[-] pred-i.ri
[edit]
[-] %25-i.ri
[edit]
[-] to_i-i.ri
[edit]
[-] %5b%5d-i.ri
[edit]
[-] truncate-i.ri
[edit]
[-] digits-i.ri
[edit]
[-] %3e%3e-i.ri
[edit]
[-] pow-i.ri
[edit]
[+]
..
[-] gcdlcm-i.ri
[edit]
[-] fdiv-i.ri
[edit]
[-] %2b-i.ri
[edit]
[-] %3e%3d-i.ri
[edit]
[-] even%3f-i.ri
[edit]
[-] lcm-i.ri
[edit]
[-] succ-i.ri
[edit]
[-] %3d%3d-i.ri
[edit]
[-] ceildiv-i.ri
[edit]
[-] div-i.ri
[edit]
[-] inspect-i.ri
[edit]
[-] %7e-i.ri
[edit]
[-] gcd-i.ri
[edit]
[-] %5e-i.ri
[edit]
[-] ord-i.ri
[edit]
[-] next-i.ri
[edit]