Class DoubleBits



  • public class DoubleBits
    extends Object
    DoubleBits manipulates Double numbers by using bit manipulation and bit-field extraction. For some operations (such as determining the exponent) this is more accurate than using mathematical operations (which suffer from round-off error).

    The algorithms and constants in this class apply only to IEEE-754 double-precision floating point format.

    • Constructor Detail

      • DoubleBits

        public DoubleBits(double x)
    • Method Detail

      • powerOf2

        public static double powerOf2(int exp)
      • exponent

        public static int exponent(double d)
      • truncateToPowerOfTwo

        public static double truncateToPowerOfTwo(double d)
      • toBinaryString

        public static String toBinaryString(double d)
      • maximumCommonMantissa

        public static double maximumCommonMantissa(double d1,
                                                   double d2)
      • getDouble

        public double getDouble()
      • biasedExponent

        public int biasedExponent()
        Determines the exponent for the number
      • getExponent

        public int getExponent()
        Determines the exponent for the number
      • zeroLowerBits

        public void zeroLowerBits(int nBits)
      • getBit

        public int getBit(int i)
      • numCommonMantissaBits

        public int numCommonMantissaBits(DoubleBits db)
        This computes the number of common most-significant bits in the mantissa. It does not count the hidden bit, which is always 1. It does not determine whether the numbers have the same exponent - if they do not, the value computed by this function is meaningless.
        Parameters:
        db -
        Returns:
        the number of common most-significant mantissa bits
      • toString

        public String toString()
        A representation of the Double bits formatted for easy readability