2012-08-26 12 views
7

Qualcuno conosce i passaggi per dividere gli interi binari senza segno utilizzando la divisione non ripristinata?Algoritmo di divisione non ripristino

È difficile trovare qualche buona fonte online.

cioè se A = 101110 e B = 010111

Come troviamo A divided by B a non ripristinare la divisione? Che aspetto hanno i registri in ogni fase?

Grazie!

+0

Consultare il codice sorgente di [questa pagina web] (http://www.ecs.umass.edu/ece/koren/arith/simulator/NRDiv/). –

risposta

20

(La mia risposta è un po 'in ritardo di risposta ma spero che sarà utile per i futuri visitatori.)

Algoritmo per non ripristinare la divisione è data immagine di seguito in:

enter image description here

in questo problema, dividendo (a) = 101110, cioè 46, e divisore (B) = 010111, cioè 23.

inizializzazione:

Set Register A = Dividend = 000000 
Set Register Q = Dividend = 101110 
(So AQ = 000000 101110 , Q0 = LSB of Q = 0) 
Set M = Divisor = 010111, M' = 2's complement of M = 101001 
Set Count = 6, since 6 digits operation is being done here. 

Dopo questo noi iniziamo l'algoritmo, che ho mostrato in una tabella:

In tabella, SHL(AQ) denotes shift left AQ by one position leaving Q0 blank.

Allo stesso modo, un simbolo quadrato in posizione Q0 denotano, it is to be calculated later

enter image description here

Speranza tutti i passaggi sono chiari dalla tabella !!!

-1

1) Impostare il valore del registro A come 0 (N bit)
2) Impostare il valore del registro M come divisore (N bit)
3) Impostare il valore del registro Q come dividendo (N bit)
4) Concatena A con Q {A, Q}
5) Ripetere il seguente numero "n" di volte (qui n è il numero di bit nel divisore): Se il bit di segno di A è uguale a 0, spostare A e Q combinati, lasciati da 1 bit, e sottraggono M da A. Altrimenti spostano A e Q combinati, lasciati da 1 bit e aggiungono M a A Ora se il bit di segno di A è uguale a 0, allora imposta Q [0] come 1 , altrimenti impostare Q [0] come 0
6) Infine se il bit di segno di A è uguale a 1, aggiungere M a A.
7) Assegnare A come resto e Q come quoziente.