¿Cómo se produce la división dentro de las computadoras? ¿Cuál es el algoritmo para él? Ha buscado mucho en google, pero no han conseguido resultados satisfactorios. Proporcione un claro algoritmo/diagrama de flujo para el algoritmo de división con una ilustración de la muestra.
Respuestas
¿Demasiados anuncios?La división de los algoritmos en diseños digitales se pueden dividir en dos categorías principales. Lento de la división y de rápida división.
Le sugiero que lea sobre cómo binaria de la suma y la resta funciona si usted no está familiarizado con estos conceptos.
Lento División
El más sencillo de los métodos lentos todas funcionan básicamente de la siguiente manera. Tomar el número que se divide (numerador o dividendo) y restar el divisor de ella. Hacer esto de forma recursiva con el resultado de la resta hasta que el resto sea menor que el divisor. Estos restos de cantidad es el resto. La cantidad de iteraciones es el cociente.
Ejemplo:
7/3:
- $$7-3=4$$
- $$4-3=1$$
- $$1 < 3$$
Por lo tanto la respuesta es 2 1 resto. Con el fin de hacer esta respuesta un poco más relevante, aquí hay algunos antecedentes. Binaria resta se realiza a través de la adición de la negativa por ejemplo,: 7 - 3 = 7 + (-3). Esto se logra mediante el uso de dos elogio de los números binarios. Cada número binario se añade por medio de una serie de serpientes llenas:
Donde cada uno de 1 bit full adder se implementa de la siguiente manera:
Rápido División
Mientras que el lento división es fácil de entender, se requiere repetitivo iteraciones. Existe varios "rápida" de los algoritmos, pero todas se basan en la estimación.
Considerar la Goldschmidt método:
Voy a hacer uso de los siguientes: $$Q = \frac{N}{D}$$
Este método funciona de la siguiente manera:
- Multiplicar N y D con una fracción F de tal manera que D se acercó 1.
- Como D enfoques 1, N se acerca a P
Este método utiliza binaria la multiplicación que se realiza a través del proceso iterativo de adición. También se utiliza en las modernas CPU de AMD.
Equipos no iterativo además para multiplicar a números - sería muy lento. En lugar, hay algunos algoritmos de multiplicación rápida. Echa un vistazo: http://en.wikipedia.org/wiki/Karatsuba_algorithm