Skip to content

Main content

IEEE Binary64 NaN Payload Record

Extract binary64 NaN sign, high quiet bit and remaining 51-bit payload from exact raw bits; rejects non-NaN patterns and does not assert runtime NaN propagation.

Loading tool…

Description

Extract binary64 NaN sign, high quiet bit and remaining 51-bit payload from exact raw bits; rejects non-NaN patterns and does not assert runtime NaN propagation.

Binary floating-point storage separates sign, biased exponent and fraction fields. Zero and subnormal patterns use a different significand rule from normal values, and reserved exponent patterns represent infinity or NaN. These tools accept exact unsigned raw patterns as decimal integer text, preserving signed-zero and payload evidence without converting the bits into a JavaScript numeric value.

Extract binary64 NaN sign, high quiet bit and remaining 51-bit payload from exact raw bits; rejects non-NaN patterns and does not assert runtime NaN propagation.

When to use this tool

Use this tool to extract binary64 NaN sign, high quiet bit and remaining 51-bit payload from exact raw bits; rejects non-NaN patterns and does not assert runtime NaN propagation.

How to use the tool and how it works

  1. Enter pattern using the input definitions below.
  2. Run the operation. Resolve malformed-input errors before interpreting the result.
  3. Read result.sign, result.quiet, result.payload. Interpret signs, units, ordering and null values using the rules below.

Read an exact unsigned 64-bit pattern from decimal text. Its fields are one sign bit, 11 exponent bits and 52 fraction bits, with exponent bias 1023. Require a NaN pattern. Read fraction bit 51 as the quiet flag and return the low 51 fraction bits as decimal payload text, with the original sign.1, 2

Input fieldMeaning and unitsAccepted input
patternExact unsigned 64-bit raw pattern as decimal integer text, from 0 through 2^64−1.Text, at most 8,192 UTF-16 code units; the stated grammar and narrower limits also apply.
Output fieldInterpretation
resultObject containing the fields below.
result.signRaw sign bit, 0 or 1, including for zero and NaN.
result.quietWhether NaN fraction bit 51 is set.
result.payloadLow 51 NaN fraction bits as exact decimal integer text.
json
{
  "input": {
    "pattern": "9221120237041090561"
  },
  "output": {
    "result": {
      "sign": 0,
      "quiet": true,
      "payload": "1"
    }
  }
}

Limitations and assumptions

  • The quiet-bit convention is explicit raw-bit interpretation; this tool makes no promise about processor signaling behavior or runtime payload preservation.
  • Pattern width is fixed by the tool name. Supply 0≤pattern<2^width as exact decimal integer text, not hexadecimal text or the represented float’s decimal value. Raw-bit operations preserve payloads without guaranteeing runtime NaN behavior.
  • Every declared top-level input is required and unknown fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
  • Numeric outputs must be finite and within the absolute safe-integer magnitude; exact larger integers use decimal text. Source positions are zero-based UTF-16 offsets and span ends are exclusive unless a different convention is explicitly stated.

Alternative or Complementary methods

Distinguish a raw unsigned bit pattern from the decimal value that pattern represents. Use field join/split operations for exact bit editing and a separate numeric conversion when a runtime floating-point value is required.

References

  1. Numerical Computation Guide: IEEE Arithmetic — Oracle

  2. Tool behavior and example: IEEE Binary64 NaN Payload Record — tool.io

Similar or alternative tools

  • IEEE Binary64 Exact Dyadic Record

    Decode an exact IEEE binary64 raw pattern into signed integer significand times 2^binaryExponent; infinity/NaN have null dyadic value, negative zero remains explicit.

  • IEEE Binary64 Field Joiner

    Join explicit IEEE binary64 sign/exponent/fraction fields into exact raw integer pattern text; permits all classes without converting to a JavaScript float.