Class DoubleBits


  • public class DoubleBits
    extends java.lang.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.

    Version:
    1.7
    • 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 java.lang.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 java.lang.String toString()
        A representation of the Double bits formatted for easy readability
        Overrides:
        toString in class java.lang.Object