Ruby v1.6 Class and Library Reference: Bignum

class Bignum |
Parent: | Integer
Version: | 1.6

### Index:

Arithmetic operations Bit operations <=> [ ] size to_f to_i to_s

`Bignum` objects hold integers outside the range of `Fixnum`. `Bignum` objects are created automatically when integer calculations would otherwise overflow a `Fixnum`. When a calculation involving `Bignum` objects returns a result that will fit in a `Fixnum`, the result is automatically converted.

For the purposes of the bitwise operations and `[]`, a `Bignum` is treated as if it were an infinite-length bitstring with 2's complement representation.

While `Fixnum` values are immediate, `Bignum` objects are not-assignment and parameter passing work with references to objects, not the objects themselves.

instance methods
Arithmetic operations |
|  | Performs various arithmetic operations on big.{:0021:}:0021:
big | + | aNumeric | Addition
big | - | aNumeric | Subtraction
big | * | aNumeric | Multiplication
big | / | aNumeric | Division
big | % | aNumeric | Modulo
big | ** | aNumeric | Exponentiation
Bit operations |
|  | Performs various operations on the binary representations of the `Bignum`.
~ big | Invert bits
big | | | aNumeric | Bitwise OR
big | & | aNumeric | Bitwise AND
big | ^ | aNumeric | Bitwise EXCLUSIVE OR
big | << | aNumeric | Left-shift aNumeric bits
big | >> | aNumeric | Right-shift aNumeric bits (with sign extension)
<=> | big <=> aNumeric -> -1, 0, +1
|  | Comparison-Returns -1, 0, or +1 depending on whether big is less than, equal to, or greater than aNumeric. This is the basis for the tests in `Comparable`.
[ ] | big[ n ] -> 0, 1
|  | Bit Reference-Returns the nth bit in the (assumed) binary representation of big, where big[0] is the least significant bit.
    a = 9**15
    50.downto(0) do |n|
      print a[n]
    end
produces:
    000101110110100000111000011110010100111100010111001
size | big.size -> anInteger
|  | Returns the number of bytes in the machine representation of big.
`(256**10 - 1).size` | -> | `10`
`(256**20 - 1).size` | -> | `20`
`(256**40 - 1).size` | -> | `40`
to_f | big.to_f -> aFloat
|  | Converts big to a `Float`. If big doesn't fit in a `Float`, the result is infinity.
to_i | big.to_i -> big
|  | Returns big.
to_s | big.to_s -> aString
|  | Returns a string containing the decimal representation of big.

Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0.
This reference is available for download.