Calculator
Example Data
| A (bin) | B (bin) | Mode | Result (bin) | Result (dec) |
|---|---|---|---|---|
| 101101 | 1110 | Unsigned | 11111 | 31 |
| 1000 | 0011 | Unsigned | 101 | 5 |
| 0010 | 0111 | Two’s complement (4-bit) | 1011 | -5 |
Formula Used
Binary subtraction is performed per bit from right to left using a borrow. For each position:
- d = a − b − borrow_in
- If d ≥ 0, output bit is d and borrow_out is 0.
- If d < 0, output bit is d + 2 and borrow_out is 1.
In wrap mode, the subtraction is taken modulo 2^width (two’s complement behavior).
How to Use
- Enter Minuend (A) and Subtrahend (B) as binary.
- Choose Unsigned if A is at least B.
- Choose Two’s complement wrap to allow negatives.
- Set bit width for wrap mode, or keep it auto.
- Click Subtract to view results and steps.
- Use Download CSV/PDF for reports or homework.
Notes for Advanced Use
- Unsigned constraint: If A < B, switch to wrap mode or change inputs.
- Choosing width: For signed work, use the intended register width (8, 16, 32, etc.).
- Leading zeros: Unsigned results trim leading zeros; wrap mode preserves width.
Binary subtraction accuracy and borrow behavior
This calculator supports classroom and engineering workflows by reporting borrow states and multiple formats. For an 8-bit example, subtracting 00101101 (45) minus 00001110 (14) yields 00011111 (31) with borrow-out 0.
Unsigned vs wrap arithmetic in digital systems
Unsigned subtraction requires A ≥ B; otherwise, the result is not representable without a sign. Wrap mode performs subtraction modulo 2^w. With w = 4, 0010 − 0111 becomes 1011, which represents −5 in two’s complement.
Bit width selection and overflow risk
Bit width defines the numeric range. A signed w-bit range is −2^(w−1) to 2^(w−1)−1. For w = 16, that is −32768 to 32767. Choosing the intended width aligns results with CPU registers and prevents misreading overflowed wrap values.
Borrow-step auditing for verification
Each bit uses d = a − b − borrow_in. If d is negative, a borrow is issued and the output bit becomes d + 2. The steps table exposes borrow-in and borrow-out per position, making it easy to reconcile manual work and find a single-bit mistake.
Interpreting decimal and hexadecimal outputs
Binary results are shown alongside decimal and hexadecimal conversions for reporting. Hex groups bits in 4s, so 11111111 is FF. In wrap mode, a leading 1 indicates a negative signed value, computed as −(2^w − unsigned).
Export-ready outputs for assignments and logs
CSV exports include inputs, mode, width, and the full borrow table for reproducibility. PDF exports summarize the same fields in a clean one-page record. Together, these support lab notebooks, homework submissions, and debugging notes where traceability matters.
FAQs
1) Why does unsigned mode reject A < B?
Unsigned numbers have no sign, so negatives are not representable. If A is smaller, use wrap mode or increase your representation to a signed system.
2) What does “two’s complement wrap” mean?
It computes subtraction modulo 2^width, matching fixed-width registers. The binary pattern is preserved, and the leading bit determines the signed interpretation.
3) How should I choose the bit width?
Use the same width as your target system: 8, 16, 32, or 64 bits. For learning, keep width just large enough to capture the intended sign.
4) What is borrow-out, and when is it useful?
Borrow-out indicates that the subtraction needed a borrow beyond the most significant bit. It helps detect underflow in unsigned arithmetic and validate manual subtraction steps.
5) Why does the result keep leading zeros in wrap mode?
Wrap mode models fixed registers, so the result must remain exactly “width” bits. Leading zeros are meaningful because they preserve the register’s bit pattern.
6) What exactly is included in the CSV export?
The CSV includes A, B, mode, bit width, result in binary/decimal/hex, and the per-bit borrow table. This is ideal for documentation and grading.