---
title: "Restoring vs non-restoring division"
subject: "Computer Organization and Architecture"
chapter: 5
key: "semester_5/computer_organization_and_architecture:restoring-vs-nonrestoring"
source: https://www.bctengineer.com/q/semester_5/computer_organization_and_architecture/restoring-vs-nonrestoring
site: BCT Engineering
---

# Restoring vs non-restoring division

Computer Organization and Architecture · Chapter 5: Computer Arithmetic

- Asked in: 2076 Chaitra, 6 marks; 2076 Asoj, 6 marks; 2075 Asoj, 6 marks; 2071 Shrawan, 4 marks; 2068 Baisakh (old course), 8 marks (asked 5 times)
- Video: [3. Binary Division method (Restoring and Non-restoring Division Algorithm)](https://www.youtube.com/watch?v=6ToR6vuRb3M) — Always Learn More
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/computer_organization_and_architecture/restoring-vs-nonrestoring
- Whole chapter: https://www.bctengineer.com/md/semester_5/computer_organization_and_architecture/chapter-5

## Question

Differentiate between restoring and non-restoring division.

## Short answer

Restoring division adds back the divisor if subtraction yields negative remainder. Non-restoring division does not restore; it adds or subtracts in the next step based on the remainder sign. Non-restoring is faster with one operation per bit, and corrects remainder if final A is negative.

## Answer

Both methods divide a dividend Q (in the A:Q registers) by a divisor M, giving a quotient in Q and a remainder in A. In restoring division, a failed subtraction is undone by adding M back; in non-restoring division the correction is delayed to the next step.

| Basis | Restoring division | Non-restoring division |
|---|---|---|
| After A - M gives a negative result | Restore: A = A + M, then Q0 = 0 | Do not restore; Q0 = 0 and next step adds M |
| Operation per step | Shift, subtract, (restore if needed) | Shift, then subtract or add depending on sign of A |
| Steps per bit | 1 or 2 (subtract, and add if negative) | Exactly 1 add/subtract |
| Speed | Slower (extra restoring addition) | Faster (fewer operations) |
| Hardware / control | Simple, but needs restore path | Slightly more complex sign test, no restore step |
| Final remainder | Always correct in A | If A is negative at the end, add M once to correct |
| Quotient bit | 1 if A - M ≥ 0 | 1 if A (after op) ≥ 0, else 0 |
| Number of additions | More | Fewer |

#### Example: 11 ÷ 3 (n = 4, M = 0011)
**Restoring:**

| Step | A (after shift) | Q | A - M | Action | A | Q (after) |
|---|---|---|---|---|---|---|
| init | 00000 | 1011 | | | | |
| 1 | 00001 | 0110 | -00010 (neg) | negative: Q0=0, restore A | 00001 | 0110 |
| 2 | 00010 | 1100 | -00001 (neg) | negative: Q0=0, restore A | 00010 | 1100 |
| 3 | 00101 | 1000 | 00010 | positive: Q0=1 | 00010 | 1001 |
| 4 | 00101 | 0010 | 00010 | positive: Q0=1 | 00010 | 0011 |

Quotient = 0011 = 3, remainder = 2.

**Non-restoring** (negative values shown with a minus sign for clarity):

| Step | Shift AQ left: A | Q | Operation | A (new) | Q0 set | Q |
|---|---|---|---|---|---|---|
| init | 00000 | 1011 | | | | |
| 1 | 00001 | 0110 | A = A - M | -00010 | 0 | 0110 |
| 2 | -00100 | 1100 | A = A + M | -00001 | 0 | 1100 |
| 3 | -00001 | 1000 | A = A + M | 00010 | 1 | 1001 |
| 4 | 00101 | 0010 | A = A - M | 00010 | 1 | 0011 |

Quotient = 0011 = 3, remainder = 2. The final A is positive, so no correction is needed.

Both give 11 = 3 × 3 + 2. The non-restoring method used no restore steps.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. After A - M gives a negative result, restoring division:
   A. Adds M back (restores A) and sets Q0 = 0
   B. Leaves A and adds M next step
   C. Sets Q0 = 1
   D. Stops
   Answer: A. Non-restoring delays the correction by adding M in the next step. (Key point: Handling negative result)

2. Why is non-restoring division faster?
   A. It has exactly one add/subtract per step and no restore addition
   B. It has a faster clock
   C. It uses fewer bits
   D. It skips the shift
   Answer: A. Restoring may need two operations per bit; non-restoring needs one. (Key point: Speed)

3. In non-restoring division, if A is negative at the end:
   A. Add M once to correct the remainder
   B. Subtract M
   C. Quotient is wrong and must be redone
   D. Nothing needed
   Answer: A. Restoring always gives a correct remainder in A, non-restoring may need a final correction. (Key point: Final remainder)

4. 11 divided by 3 gives:
   A. Quotient 3, remainder 2
   B. Quotient 2, remainder 3
   C. Quotient 4, remainder 1
   D. Quotient 3, remainder 1
   Answer: A. 3 x 3 + 2 = 11 in both methods. (Key point: Example 11 / 3)

## Related in Computer Organization and Architecture

- [Non-restoring division with flowchart](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Anonrestoring-explain) — Computer Organization and Architecture, chapter 5, asked 3×
- [Signed division and non-restoring division](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Anonrestoring-division) — Computer Organization and Architecture, chapter 5
- [Non-restoring division of 10 by 5](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Anonrestoring-10-5) — Computer Organization and Architecture, chapter 5
- [Restoring division algorithm and hardware](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Arestoring-division) — Computer Organization and Architecture, chapter 5, asked 2×
- [Restoring division flowchart](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Arestoring-flowchart) — Computer Organization and Architecture, chapter 5
- [Restoring division of 31 by 13](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Arestoring-31-13) — Computer Organization and Architecture, chapter 5

## Related in other subjects

- [Unique vs non-unique address decoding](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Aunique-vs-nonunique-decoding) — Instrumentation II, chapter 2
- [Maskable vs non-maskable interrupts](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3Amaskable-vs-nonmaskable) — Microprocessor, chapter 5, asked 2×
- [Pressurized vs non-pressurized intakes](https://www.bctengineer.com/question.md?key=semester_7%2Fhydropower_engineering%3Aintake-pressurized-vs-nonpressurized) — Hydropower Engineering, chapter 5, asked 2×
- [Functional vs non-functional; include and extend](https://www.bctengineer.com/question.md?key=semester_6%2Fobject_oriented_analysis_and_design%3Afunctional-nonfunctional-include-extend) — Object Oriented Analysis and Design, chapter 2
