Autor Tema: Tipos de datos  (Leído 1661 veces)

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

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Tipos de datos
« en: 13 de Noviembre de 2007, 08:49:07 »
Buenas compañeros,

Siempre que me pongo a programar y quiero sacar un dato por pantalla me hago un lio, no por desconocer los tipos de datos sino porque como programo de uvas a peras pues se me olvida.

1.- Si tengo un entero (1 byte) declarado como int1 ADC=0; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %d"ADC);
2.- Si tengo un entero (1 byte) declarado como int8 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %d"ADC);
3.- Si tengo un entero (2 bytes) declarado como int16 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %L"ADC);
4.- Si tengo un entero (4 bytes) declarado como int32 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %LF"ADC);

Si declaro la variable como un int  será como el caso 1 (int8-->%d);
Si declaro la variable como un long será como el caso 3 (int16-->%L);
Si declaro la variable como un Char a la hora de visualizar el caracter será %C;
Si declaro la variable como un float será como el caso 4 (int32-->%Lf);

Ya me vais diciendo, un saludo.

P.D. Todo esto viene a que quiero representar un entero por el LCD pero antes de representarlo pillo una muestra del cad (que es un float) hago unas operaciones y la quiero representar como un entero.

Muchas gracias de antemano!!!
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Tipos de datos
« Respuesta #1 en: 13 de Noviembre de 2007, 16:10:41 »
Buenas quería preguntaros esto:

Si tengo una variable definida como:

unsigned long int resultado_AD=0x00;

y luego quiero sacarla por pantalla(RS232) de la siguiente forma:

printf("El valor de resultado es: %f", resultado);

¿sería correcto?porque me da el compilador el siguiente error: "printf format type is invalid"

Gracias de antemano.

Alfonso
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Tipos de datos
« Respuesta #2 en: 13 de Noviembre de 2007, 16:33:53 »
Te da error porque el modificador que pones es para sacar una float por pantalla, no una long.
Mira la ayuda de printf() que alli estan los modificadores y tambien ejemplos de salida de datos... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: Tipos de datos
« Respuesta #3 en: 13 de Noviembre de 2007, 16:37:37 »

   fijate en la ayuda de CCS, viene algo como esto:

c Character
s String or character
u Unsigned int
d Signed int
Lu Long unsigned int
Ld Long signed int
x Hex int (lower case)
X Hex int (upper case)
Lx Hex long int (lower case)
LX Hex long int (upper case)
f Float with truncated decimal
g Float with rounded decimal
e Float in exponential format
w Unsigned int with decimal place inserted. Specify two numbers for n. The first is a total field width. The second is the desired number of decimal places.
 
    Example formats:

Specifier     Value=0x12    Value=0xfe
 
%03u          018                254
%u             18                  254
%2u            18                  *
%5             18                  254
%d             18                    -2
%x             12                   fe
%X             12                   FE
%4X          0012                 00FE
%3.1w         1.8                25.4

 
   Si quieres sacarlo como entero decimal deberas poner %d,  %Ld para decimal largo.

          Saludos

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Tipos de datos
« Respuesta #4 en: 14 de Noviembre de 2007, 05:23:02 »
Muchsiiimas gracias!!!

Mira que miré la ayuda (data definitions) pero no caí en mirar el printf. Bueno pues eso muchas gracias. Se me hace un poco pesada la ayuda del CCS aunque es muy completa.
« Última modificación: 14 de Noviembre de 2007, 05:29:34 por umalrovi »
Aplicaciones Electrónicas
http://www.neoingenia.com/