Simplified signed mantissa and exponent
By UK A Level Computer Science · independent study · myAudience

Original generated teaching illustration, built-in imagegen,2026-10-04; mathematical model,not documentary photograph. · Original generated artwork; operator provenance/rights and independent scientific acceptance pending.
Simplified signed mantissa and exponent
Floating point represents a value as a mantissa multiplied by a power of two, allowing the effective binary-point position to move. This lesson uses a deliberately defined independent simplified format: six mantissa bits with the point immediately after the first bit, and a four-bit integer exponent. Both fields use two’s complement. The resulting value is m×2^e. This is not IEEE 754 or a description of Python float; there is no biased exponent, hidden leading bit or imported infinity, NaN or subnormal rule.
Mantissa positions have weights −1,1/2,1/4,1/8,1/16,1/32. Thus raw signed mantissa integer M is scaled by 32, giving m=M/32. The four exponent positions have weights −8,4,2,1 and represent e from −8 to 7. Decoding requires two separate signed conversions before multiplying. The exponent's negative sign means a fractional scaling factor 2^e, not a negative final number. The final sign comes from the mantissa because every power of two is positive.
For 6.5, choose m=0.8125 and e=3 because 0.8125×8=6.5. Multiplying m by 32 gives 26, encoded 011010; exponent 3 is 0011. The first two mantissa bits 01 satisfy our positive normalisation condition, discussed next. For −6.5, m=−0.8125 gives raw −26, encoded 64−26=38 or 100110, with the same 0011 exponent. Inverting only a separate sign position would not produce the correct negative mantissa in this scheme.
Different field pairs can denote the same value before normalisation is imposed. Mantissa 0.40625 with exponent 4 also gives 6.5, while −0.40625 with exponent 4 gives −6.5. A canonical normalised form uses the most informative leading significant positions and avoids needless redundant encodings. Zero needs a separately stated canonical representation: we choose mantissa 000000 and exponent 0000. Without that choice, every exponent paired with a zero mantissa denotes zero. Those redundant pairs do not imply additional distinct numerical values.
Exact representability depends on finding legal integers M and e such that x=(M/32)×2^e. For a selected exponent, multiplying x by 32/2^e must produce an in-range integer. If it does not, a rounding policy is required; changing the exponent may permit an exact encoding, but its own range is finite. Decimal 0.1 remains nonterminating in binary, so no finite choice of these two fields represents it exactly. A successful approximation should disclose its error rather than claim that floating point solves all fractional limitations.
At a fixed exponent e, adjacent raw mantissa values differ by one, so decoded values differ by 2^e/32. At exponent 3 the spacing is 1/4; at exponent −3 it is 1/256. This changing absolute spacing helps accommodate different scales but means a large value and a small value do not share one global absolute-resolution claim. A statement that floating point is always more precise than fixed point ignores the formats and magnitudes being compared. The exact bounds are derived later under equal bit budgets.
Software may encode these fields in a byte string or integer for demonstration, but Python's native arbitrary-size integers and float semantics do not enforce the educational contract. A verifier should calculate mantissa and exponent with exact integers or fractions, validate widths and reject unsupported special cases. A production application needs additional specified arithmetic, rounding and failure rules. This lesson teaches conversion and model reasoning; it does not establish a full interoperable floating-point standard or physical processor speed.
Reading the diagram: The plate has two separately labelled field groups for each sign case. Its six mantissa weights include the negative leading weight, and its four exponent weights remain integer weights. The same exponent 0011 scales both signs by eight. The point drawn after the mantissa's first bit is an interpretation cue, not an extra stored character. Check each row by an exact signed sum, then multiplication. For unfamiliar encodings, never replace the specified contract with a familiar sign-magnitude or IEEE rule simply because the display resembles a floating-point word.
Worked example: Encode+6.5 and −6.5 in the 6-bit signed mantissa/4-bit signed exponent model, with point after the first mantissa bit.
Choose exponent 3 so the required mantissas are±0.8125.
Raw mantissas are±26. Positive 26=011010; negative −26 encodes 100110 in 6 bits.
Exponent 3=0011. Signed decoding gives±26/32×2^3=±6.5.
Answer: +6.5 is 011010/0011;−6.5 is 100110/0011. The slash separates fields and is not a stored operation.
Check your understanding: Decode 100000/1111, then encode 3.25 and −3.25. A student says a negative exponent makes every value negative and imports anIEEE infinity pattern. Explain both failures and state how zero is handled here.
Answer: Mantissa 100000 is −1; exponent 1111 is −1, so the value is −1×1/2=−0.5. For±3.25 choose exponent 2, giving mantissas±0.8125, so encodings 011010/0010 and 100110/0010. A negative exponent changes magnitude through a positive power-of-two factor; it does not determine the sign. This defined format has no reservedIEEE infinity pattern, so an unsupported import changes the contract. Canonical zero is 000000/0000 by an explicit special handling rule, not the positive 01 or negative 10 normalisation test.
Why: Require independent signed decoding of both fields and exact value reconstruction. A known industrial standard is useful context, not authority to overwrite the examination problem's declared representation.