Description
Decode a sign-magnitude word with negative-zero policy.
A fixed-width bit pattern and the number it represents are different concepts. Unsigned, two's-complement, one's-complement, sign-magnitude and biased encodings use different sign and zero conventions, so a bit-preserving transformation need not preserve numerical meaning.
Decode a sign-magnitude word with negative-zero policy.
When to use this tool
Use Bitwise: Sign Magnitude Word To Integer when checking the stated fixed-width representation or encoding convention.
How to use the tool and how it works
- Enter word, width, negativeZeroPolicy. Use the units and conventions below.
- Run the tool. Correct any format, range, or cross-field input error before interpreting the output.
- Read result. Expand result to inspect the returned fields.
Decode a sign-magnitude word with negative-zero policy. Validate word and policy canonical-zero/preserve-tag; top bit is sign, remaining bits magnitude, integer is signed decimal text and negativeZero flags the lone sign bit; preservedNegativeZero additionally requires preserve-tag.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| word | Word | Required. Text. Integer syntax: optional + or - and 1-128 decimal digits; leading zeros accepted. Apply the sign restriction above. Implementation limit: 8192 Unicode code points and 16384 UTF-16 code units. Word value must satisfy 0 <= value < 2^width. |
| width | Width under the stated bit, interval or geometry convention; apply the field-specific units and bounds. | Required. Safe integer. Fixed-word implementation domain: whole width 1-128 bits. |
| negativeZeroPolicy | Negative Zero Policy | Required. Text; one of "canonical-zero", "preserve-tag". Implementation limit: 8192 Unicode code points and 16384 UTF-16 code units. |
| Output field | Interpretation | Returned shape |
|---|---|---|
| result | Returned calculated value or nested object under the stated output convention. | Required. Object. |
| result.integer | Integer | Calculated result member: string. |
| result.negativeZero | Separate encoding tag for negative zero; integer decimal text itself remains zero. | Calculated result member: boolean. |
| result.preservedNegativeZero | Preserved Negative Zero | Calculated result member: boolean. |
{
"input": {
"word": "129",
"width": 8,
"negativeZeroPolicy": "preserve-tag"
},
"output": {
"result": {
"integer": "-1",
"negativeZero": false,
"preservedNegativeZero": false
}
}
} Limitations and assumptions
- The integer string is still zero for negative zero; only the separate tag preserves the representation distinction.
- Outputs are nested inside result. Inputs must satisfy both the field types and the cross-field conditions above. Invalid input causes an error; a successful false flag or documented placeholder is a different result.
- Numeric calculations use binary floating point unless exact decimal-integer arithmetic is explicitly stated. No hidden measurement tolerance or decimal rounding is added; nonfinite or out-of-contract results are rejected. Numeric signed-zero results are exported as zero.
Alternative or Complementary methods
Choose an explicit representation and width, validate the complete encoded value and use the matching signed or unsigned conversion for the intended numerical interpretation.
References
Similar or alternative tools
- Signed Magnitude Add Sign Conflict
Compare signed-magnitude operands for opposing nonzero signs.
- Bitwise: Sign Magnitude Signed Zero Tag
Return sign-magnitude sign, magnitude and negative-zero flags.