Routines for manipulating binary representations of a IEEE 754 double precision numbers.
var db = require("double-bits")
//Get higher order word
console.log(db.hi(1.0).toString(16))    //Prints out: 3ff00000
//Get lower order word
console.log(db.lo(1.0).toString(16))    //Prints out: 0
//Combine two words into a double
console.log(db.pack(0, 0x3ff00000))     //Prints out: 1.0
//More sophisticated example:  Print out base 2 representation
var pad = require("pad")
function base2Str(n) {
  var f = db.fraction(n)
  return (db.sign(n) ? "-" : "") +
    "2^" + (db.exponent(n)+1) +
    " * 0." + pad(f[1].toString(2), 20, "0") + 
              pad(f[0].toString(2), 32, "0")
}
console.log(base2Str(1.0))
//Prints out:
//
//   2^1 * 0.10000000000000000000000000000000000000000000000000000
//npm install double-bits
var db = require("double-bits")Returns a pair of 32-bit unsigned ints encoding the lower/higher order words respectively representing n
- nis an IEEE754 double number
Returns An array, [lo,hi] encoding n
Returns the lower order word of n
- nis an IEEE754 number
Returns The lower order word of n
Returns the higher order word of n
- nis an IEEE754 number
Returns The higher order word of n
Given a pair of lower/higher order words, concatenate them into a 64 bit double precision number
- lois the lower order word
- hiis the higher order word
Returns An IEEE754 double precision number formed by concatenating the bits of lo and hi
Returns the state of the sign bit of n
- nis an IEEE754 double precision number
Returns The sign bit of n
Returns the exponent of n
- nis an IEEE754 double precision number
Returns The exponent of n
Returns the fractional part of n
- nis an IEEE754 double precision number
Returns The fractional part of n encoded as a pair of numbers, [lo,hi] where lo is a 32 bit integer and hi is a 21 bit integer.
Test if a double is denormalized.
- nis a number
Returns true if n is denormal, false otherwise
(c) 2014 Mikola Lysenko. BSD License

