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
- Enter pattern using the input definitions below.
- Run the operation. Resolve malformed-input errors before interpreting the result.
- 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 field | Meaning and units | Accepted input |
|---|---|---|
| pattern | Exact 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 field | Interpretation |
|---|---|
| result | Object containing the fields below. |
| result.sign | Raw sign bit, 0 or 1, including for zero and NaN. |
| result.quiet | Whether NaN fraction bit 51 is set. |
| result.payload | Low 51 NaN fraction bits as exact decimal integer text. |
{
"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
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.