Autor Tema: RE: Suma de más de cuatro cifras  (Leído 2809 veces)

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

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Suma de más de cuatro cifras
« en: 13 de Julio de 2002, 19:18:00 »
Quizás la solución sería codificar el número grande de 8 cifras 99999999 en BCD. necesitarías 8 bytes para almacenar el número total. También deberías controlar byte por byte cuando hay un acarreo al byte siguiente. Es un poco coñazo pero puede que sea efectivo. En cualquier caso una wariable  tipo "word" en PBP no puede almacenar nada mas que 65.000 valores (más o menos). En el caso de BCD, cada dígito solo codifica del 0 al 9. Es más podrías reducirlo a 4 bytes,  porque para codificar de cero a nueve puede hacerse con 4 bits. Esto último quizá complica mucho la cosa.

    9     9     9      9      9      9      9     9
   0000 0000   0000   0000   0000   0000   0000  0000

Saludos.
Ricky
 

Desconectado Eduagra

  • PIC16
  • ***
  • Mensajes: 116
RE: Suma de más de cuatro cifras
« Respuesta #1 en: 14 de Julio de 2002, 01:51:00 »
He encontrado otra solución en PBP, el sistema sería el siguiente:
dato1 = dato1 + numero
if dato1 > 9999 then
dato2 = dato2 + 1
dato1 = dato1 - 10000
endif
cf1 = dato1 dig 0
cf2 = dato1 dig 1
cf3 = dato1 dig 2
cf4 = dato1 dig 3
cf5 = dato2 dig 0
cf6 = dato2 dig 1
cf7 = dato2 dig 2
cf8 = dato2 dig 3
lcdout #cf1,#cf2,#cf3,#cf4,#cf5,#cf6,#cf7,#cf8

Lo he probado asi y funciona. Otro sistema que me pasó por la cabeza es el que amablemente me ha propuesto RGL, pero no se como controlar el acarreo, ya que no domino el ensamblador, sin embargo el PBP me parece muy sencillo.
Muchas gracias a RGL.

Pd.
A ver si entre todos podemos hacer un foro interesante.