UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

14 lines (13 loc) 452 B
const EXPONENT_BITMASK = 2146435072; export default function dissectFloat(value) { const float = new Float64Array([value]); const uints = new Uint32Array(float.buffer); const exponent = (((uints[1] & EXPONENT_BITMASK) >>> 20) - 1023 - 31); const mantissa = 2147483648 + ((((uints[1] & 1048575) << 11) | ((uints[0] & 4292870144) >>> 21))); return { negative: (value < 0), exponent, mantissa, }; }