Asamblea de División en MSP430

0

He estado intentando implementar una rutina de ensamblaje en MSP430 para la división. Ya obtuve el código para la división del algoritmo de división de Horner. El problema es que solo tengo la parte entera. ¿Cómo puedo obtener la parte fraccionaria de una división? Por ejemplo: 5/2 = 2.5. ¿Cómo consigo la parte 0.5?

    
pregunta EMPV

2 respuestas

1

Deberías obtener el resto.

Para convertir eso en una fracción, primero debes decidir entre punto fijo y punto flotante; y si es fijo, cuántos bits fraccionarios.

El punto fijo es fácil: si decide que desea 8 bits fraccionarios, simplemente divida 2 ^ 8 * resto / denominador, y use el tamaño del resto de esa operación para determinar el redondeo.

En tu ejemplo, eso daría

(256 * 1) / 2 = 128 como su parte fraccionaria, es decir, 128/256 = 0.5

O para 3 dígitos fraccionarios (decimales), simplemente calcule 10 ^ 3 * resto / denominador.

Para el punto flotante usaría una biblioteca de punto flotante; es demasiado complejo como para considerar seriamente lanzar el tuyo.

    
respondido por el Brian Drummond
0

Puedes hacerlo

 q  =(num * 2^n)/ denom

como una división entera; El resultado tendrá n extra, fraccional, bits. Así que con n = 8,

(5*256)/2 = 640 

que es 2.5 * 256 o 2 * 256 + (128/256).

    
respondido por el greggo

Lea otras preguntas en las etiquetas