Autor Tema: Visualizar entero con signo de mas de 32 Bits  (Leído 1935 veces)

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

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
Visualizar entero con signo de mas de 32 Bits
« en: 17 de Agosto de 2011, 10:00:24 »
Como podria visualizar en LCD un entero con signo de mas de 32 Bits?, el pic solo admite 32 bit y podria usar un segundo Byte para acarreo del primero pero el formato seria extraño y no seria un entero tal y como deberia ser-
Alguien tuvo este problema? como lo resolvio?
Muchas gracias

Desconectado cristian_elect

  • PIC18
  • ****
  • Mensajes: 453
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #1 en: 17 de Agosto de 2011, 11:17:21 »
Primero en que lemguaje trabajas y que pic usas.

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #2 en: 17 de Agosto de 2011, 12:55:26 »
16F788 a 10 Mh, es un LCD de 40 lineas y uso CCS, el problema es que quiero usar un contador de mas de 32 bit, por lo que puedo acarrear en un segundo entero de 32 el overflow del primer byte pero a la hora de visualizar el valor de conteo no s ecomo hacerlo, ya que el segundo Byte seria 1 y el primero o mas bajo seria de nuevo cero pero no seria el valor en entero que deberia reflejar
Creo que lo explica mejor si fuesen dos palabras de 8 bits. El overflow de la primera seria el valor posterior a 256, 1 del segundo Byte y 0 del mas bajo y me indicaria el LCD "10" cuando deberia escribir de alguna forma 257
Me explico en lo que necesito?

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #3 en: 17 de Agosto de 2011, 13:54:23 »
.


Si lo que estás haciendo es un contador, me parece extraño que necesites variables con signo :?. Aún así, al trabajar con variables con signo hay que tener en cuenta que el bit que indica el desbodre de la cuenta es el bit de overflow (que no todos los pic tienen), y no el de acarreo (este sí lo tienen todos). El primero se activa cuando la cuenta pasa de 2^31 a -(2^31+1), en cambio el segundo lo hace cuando pasa de 2^32 a 0.
Para visualizarlos en un lcd, lo más sencillo es tener un grupo de variables que representen unidad, decena, centena, etc, e ir incrementándolas a medida que se va decrementando la cuenta, hasta que esta llega a 0.

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #4 en: 17 de Agosto de 2011, 14:09:28 »
Para visualizarlos en un lcd, lo más sencillo es tener un grupo de variables que representen unidad, decena, centena, etc, e ir incrementándolas a medida que se va decrementando la cuenta, hasta que esta llega a 0.

Estoy totalmente de acuerdo, porque implementar una variable de 40-bits (una unión entre un long long + char) y después pasarla a string va a ser un dolor de cabeza.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #5 en: 17 de Agosto de 2011, 14:38:05 »
a ver el contador mide distancias relativas y necesito que mida a + y a -
Ese es parte del tema.Por eso hay que hacerlo con signo.
Ademas operaciones matematicas para ese pic con variables de al menos 40 Bits?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #6 en: 17 de Agosto de 2011, 14:53:04 »
a ver el contador mide distancias relativas y necesito que mida a + y a -
Ese es parte del tema.Por eso hay que hacerlo con signo.
Ademas operaciones matematicas para ese pic con variables de al menos 40 Bits?

De poder se puede, pero tenes que implementarlas vos. En asm es lo más eficiente, pero hay que ponerse a estudiar un poco  :mrgreen: Por ejemplo en C18 implementé lo siguiente, pero todo en C, cuando necesite trabajar con variable de 64-bits:
http://www.micros-designs.com.ar/c18-logica-de-64-bits-suma-resta-multiplicacion-division/

Ahora pasarlo a string  :x


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Algec

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 974
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #7 en: 17 de Agosto de 2011, 14:57:06 »
YA tengo cosas para ir mirando
Mil gracias

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Visualizar entero con signo de mas de 32 Bits
« Respuesta #8 en: 17 de Agosto de 2011, 16:00:23 »
.

Si los incrementos/decrementos del contador son de a una unidad por vez, lo más sencillo de implementar es la codificación de signo y magnitud. Solamente hay que reservar un bit (según el "estándar", es el MSB de la variable), y usarlo para representar el signo del número (1: negativo; 0: positivo). El resto de los bits de la variable conforman la magnitud del número representado. Por ej, con 8 bits, el valor 10010001 representaría el número -17. Por supuesto que no hay límite para el tamaño de la variable, y el bit de signo puede ponerse en una variable separada de la magnitud, para trabajar esta simplemente como un número sin signo, donde sí te sirve el bit de acarreo.

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)