Class BigInt

  • All Implemented Interfaces:
    java.io.Serializable

    public final class BigInt
    extends java.lang.Object
    implements java.io.Serializable
    A low-overhead arbitrary-precision unsigned integer. This is intended for use with ASN.1 parsing, and printing of such parsed values. Convert to "BigInteger" if you need to do arbitrary precision arithmetic, rather than just represent the number as a wrapped array of bytes.

    NOTE: This class may eventually disappear, to be supplanted by big-endian byte arrays which hold both signed and unsigned arbitrary-precision integers.

    Version:
    1.23
    Author:
    David Brownell
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      BigInt​(byte[] data)
      Constructs a "Big" integer from a set of (big-endian) bytes.
      BigInt​(int i)
      Constructs a "Big" integer from a normal Java integer.
      BigInt​(java.math.BigInteger i)
      Constructs a "Big" integer from a "BigInteger", which must be positive (or zero) in value.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int byteLength()
      Returns the length of the data as a byte array.
      boolean equals​(java.lang.Object other)
      Returns true iff the parameter is a numerically equivalent BigInt.
      boolean equals​(BigInt other)
      Returns true iff the parameter is numerically equivalent.
      int hashCode()  
      java.math.BigInteger toBigInteger()
      Returns a BigInteger value which supports many arithmetic operations.
      byte[] toByteArray()
      Returns the data as a byte array.
      int toInt()
      Converts the "big" integer to a java primitive integer.
      java.lang.String toString()
      Returns a hexadecimal printed representation.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BigInt

        public BigInt​(byte[] data)
        Constructs a "Big" integer from a set of (big-endian) bytes. Leading zeroes should be stripped off.
        Parameters:
        data - a sequence of bytes, most significant bytes/digits first. CONSUMED.
      • BigInt

        public BigInt​(java.math.BigInteger i)
        Constructs a "Big" integer from a "BigInteger", which must be positive (or zero) in value.
      • BigInt

        public BigInt​(int i)
        Constructs a "Big" integer from a normal Java integer.
        Parameters:
        i - the java primitive integer
    • Method Detail

      • toInt

        public int toInt()
        Converts the "big" integer to a java primitive integer.
        Throws:
        java.lang.NumberFormatException - if 32 bits is insufficient.
      • toString

        public java.lang.String toString()
        Returns a hexadecimal printed representation. The value is formatted to fit on lines of at least 75 characters, with embedded newlines. Words are separated for readability, with eight words (32 bytes) per line.
        Overrides:
        toString in class java.lang.Object
      • toBigInteger

        public java.math.BigInteger toBigInteger()
        Returns a BigInteger value which supports many arithmetic operations. Assumes negative values will never occur.
      • byteLength

        public int byteLength()
        Returns the length of the data as a byte array.
      • toByteArray

        public byte[] toByteArray()
        Returns the data as a byte array. The most significant bit of the array is bit zero (as in java.math.BigInteger).
      • equals

        public boolean equals​(java.lang.Object other)
        Returns true iff the parameter is a numerically equivalent BigInt.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        other - the object being compared with this one.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(BigInt other)
        Returns true iff the parameter is numerically equivalent.
        Parameters:
        other - the BigInt being compared with this one.