Skip to content

Main content

Bitwise: Sign Magnitude Word To Integer Tool

Decode a fixed-width sign-magnitude word into an exact decimal integer with an explicit negative-zero tag policy, not twos complement.

Loading tool…

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

  1. Enter word, width, negativeZeroPolicy. Use the units and conventions below.
  2. Run the tool. Correct any format, range, or cross-field input error before interpreting the output.
  3. 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 fieldMeaning and unitsAccepted input
wordWordRequired. 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.
widthWidth 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.
negativeZeroPolicyNegative Zero PolicyRequired. Text; one of "canonical-zero", "preserve-tag". Implementation limit: 8192 Unicode code points and 16384 UTF-16 code units.
Output fieldInterpretationReturned shape
resultReturned calculated value or nested object under the stated output convention.Required. Object.
result.integerIntegerCalculated result member: string.
result.negativeZeroSeparate encoding tag for negative zero; integer decimal text itself remains zero.Calculated result member: boolean.
result.preservedNegativeZeroPreserved Negative ZeroCalculated result member: boolean.
json
{
  "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

  1. Calculation and input contract: bitwise/sign-magnitude-word-to-integer — tool.io

Similar or alternative tools