Autor Tema: Algoritmo de coma flotante inventado, agradeceria que lo probarais...  (Leído 1894 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Hola

Respondiendo a RGL sobre un problema de matematicas, me vino la inspiracion, y he expuesto un modo de como tratar los numeros en coma flotante. Para que lo disfruteis tod@s (siempre que el algoritmo sea efectivo) os lo pongo aqui, a alcance publico. Es un copiar-pegar del post que hice a RGL:

---------------------------------------------------------------------
MULTIPLICACION CON COMA EN 1 OPERANDO
---------------------------------------------------------------------
1.9*30 = (10*30)+(9*30) / 10


Supongamos 1.9*25 = 47.5
1.9*25 = (10*25)+(9*25) / 10 = 47.5
PERO SUPONGAMOS QUE NO HAY SOPORTE PARA COMA, ENTONCES EL RESULTADO LO ALMACENAREMOS EN DOS VARIABLES, UNO SERA EL ENTERO Y EL OTRO , UNA POTENCIA DEL 10 (1 = 10^1 , 2=10^2...)

entonces:
47.5 seria lo mismo que : 475 y 1 (desplazamiento de la coma a la IZQUIERDA)

si luego queremos re-usar este numero:
"47.5 * 3"
Seria: 475 * 3 = 1425 , y como la segunda variable = 1 , pues supondremos que es 142.5, por si queremos enviar la variable serialmente o a un LCD, siempre como si fuera un STRING.

---------------------------------------------------------------------------
MULTIPLICACION CON COMA EN DOS OPERANDOS
---------------------------------------------------------------------------
Ahora un poco mas complejo:

"4.7 * 3.2"
= (40*3.2)+(7*3.2) / 10
Y usando las reglas anteriores:

>>40*3.2 = 3.2*40 = (30*40)+(2*40) =1280 , segunda variable=1
>>7*3.2 = 3.2*7 = (30*7)+(2*7) = 224 , segunda variable(II) = 1

Ahora, cogeriamos tantos numeros desde la derecha como el valor de "segunda variable":
1280 , s.v=1 >> 128 y 0
224 , s.v=1 >> 22 y 4

Sumamos las dos por separado:
128+22=150
0+4=4
Y volvemos a juntarlas
150 y 4 = 1504 , s.v=1

Aqui no acaba la cosa, la operación en sí llevaba /10, por lo que:
s.v=2

Resultado: 1504, s.v=2 (15.04)

Desconectado Eyedol

  • PIC16
  • ***
  • Mensajes: 129
Re: Algoritmo de coma flotante inventado, agradeceria que lo probarais...
« Respuesta #1 en: 05 de Septiembre de 2006, 00:51:16 »
bueno amigo creo que nadie hiso nada para responderte. esta bien la idea pero hay que trabajar un poco mas porque que sucede cuando son numeros mas grandes ejemp. 1000.23 * 100.09 el resultado supero los 100 mil y como sabes solo contamos con 16 bits. estoy tratando de ver como hago pero esta algo difisil.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Algoritmo de coma flotante inventado, agradeceria que lo probarais...
« Respuesta #2 en: 05 de Septiembre de 2006, 01:01:20 »
ups hace 2 años que fue eso, de todos modos porque nadie utiliza las rutinas de punto flotante que hicieron los de melabs-microchip
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Algoritmo de coma flotante inventado, agradeceria que lo probarais...
« Respuesta #3 en: 05 de Septiembre de 2006, 02:19:00 »
Usen la DIV32 del PBP.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee