Dev - C++ - Tipo de variables

   
Vista:

Tipo de variables

Publicado por rafaelnfs rafaelnfs261189@gmail.com (10 intervenciones) el 14/04/2016 06:37:16
Buen dia programadores pues bueno me ha surgido una nueva duda y no he encontrado mucha info al respecto y bueno me aboco a ustedes para ver si me pueden orientar , pues bueno me gusta esto de programar (estudie electronica y bueno ahora con esto de arduino eso nos da muchas opciones para usar lo aprendido en electronica en materia de programacion) bueno la pregunta es la siguiente , me gusta ver como codigos ya escritos para revisarlos y ver como funcionan, y bueno hace poco me he estado fijando mas en las librerias de arduino , y veo que en las class (clases) que crean funciones usan mucho este tipo de "tipo de dato" uint8_t sino lo veo como uint16_t o algo por el estilo, entiendo el tipo de datos (primitivos como lo dicen en los libros que leo ) como los INT , bool, float y double pero eso lo veo mucho en las librerias de arduino y bueno si ustedes pueden orientarme pues se los agradeceria mucho (perdon si escribi mucho)

este es un ejemplo sencillo de una libraria de arduino la cual solo se usa para dar varias funciones a un LED (foquito) el cual usa ese tipo de dato:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef LED_H
#define LED_H
 
#include "WProgram.h" 
 
class LED{
  public:
    LED(uint8_t ledPin); // es aca que veo que usan eso 
/*Segun yo entiendo es como el unsigned int de 8 bits o algo por el estilo
pero la verda no e encontrado info acerca de eso y no veo como usarlo */
 
 
 
 
	bool getState(); //
    void on();
	void off();
	void toggle();
	void blink(unsigned int time, byte times=1);
	void setValue(byte val);
	void fadeIn(unsigned int time);
	void fadeOut(unsigned int time);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Tipo de variables

Publicado por agustin (306 intervenciones) el 15/04/2016 01:39:06
Eso se ve mucho en Windows y en C/C++ en general. Si usas la logica veras esto
u=unsigned
int=entero
8=8 bits
t=type
O sea que es un tipo definido y que consiste en un entero sin signo de 8 bits. Si cojes la calculadora de windows y la pones en binaria e introduces 8 veces 1 y luego le das a decimal verás que el valor máximo es 255. Lo que en C viene a ser un unsigned char.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por rafaelnfs rafaelnfs261189@gmail.com (10 intervenciones) el 15/04/2016 04:20:56
Si de hecho eso puse yo ahi en el enunciado como comentrario, que era lo que yo me imaginaba pero deceaba estar mas seguro y que me dieron parte de su sabiduria :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por Martín (65 intervenciones) el 15/04/2016 02:26:41
uint8_t es un "unsigned int de 8 bits". Que quiere decir más que nada que el programador pretende enfatizar que está usando el más chico de los enteros sin signo. También podría haber puesto unsigned char, que muy probablemente sean lo mismo.

El archivo donde está definido qué es un uint8_t es "stdint.h", que viendo el fragmento de código que pusiste debe estar incluido en #include "WProgram.h" o en algún otro .h incluido en ese WProgram.h

Ubica en tu sistema ese stdint.h y fíjate qué tiene dentro, verás que se definen una buena cantidad de tipos del mismo estilo. La idea es que el tamaño de los tipos char, short, int, long ... dependen del compilador, así que están estos tipo definidos en stdint.h para asegurarse de que si uno quiere decir "entero de 32 bits" y no "entero de 32 bits en mi compilador", pueda usar int32_t en lugar de simplemente int.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por rafaelnfs rafaelnfs261189@gmail.com (10 intervenciones) el 15/04/2016 04:19:07
cout <<"Gracias amigos de LWP "
entonces en pocas palabras puedo usar eso en una declaracion digamos asi uint8_t = 34;
miren puse algo asi en el Dev y me dice error que el tipo uint8_t no esta definido y en (Zinjal) me sale = 1
aca esta gracias por todos sus aportes me ayudan mucho a ir aprendiendo



1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[]) {
 
 
	cout <<"el valor de un uint8_t es: "<<
		sizeof(uint8_t)<<endl;
	return 0;
}
//SALIDA
// el valor de un uint8_t es: 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por agustin (306 intervenciones) el 15/04/2016 17:26:09
Lo que te muestra Zinjai es correcto, es un byte y cada byte tiene 8 bits con lo que su tamaño es de 8 bits.
Por cierto para usarlo en una declaracion tendrias que declarar algo y tu no declaras nada, intentas asignarle un valor entero a un tipo. Lo correcto seria por ejemplo:
1
uint8_t mivariable = 34;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por Rafael (10 intervenciones) el 15/04/2016 18:10:16
si eso intente hacer pero me sale esto en codeblock
1
2
3
4
5
6
7
8
uint8_t valor = 34;
 
    cout <<"el valor de uint8_t es: "
    <<valor<<endl;
 
//salida
//el valor de uint8_t es:  
//no me muestra nada.

y en Zinjal me aparece esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cout <<"valor de la funcion suma es: "
		<<suma(200)<<endl;
uint8_t valor = 45;
cout <<"valor de variable  es: "<<valor<<endl;
 
 
 
 
	return 0;
}
int suma(uint8_t a)
{
	return a+5;
}
 
// SALIDA
//valor de la funcion suma es: 205
//valor de variable  es: - (osea el valor de el numero en la tabla ASCII) 
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tipo de variables

Publicado por Martín (65 intervenciones) el 15/04/2016 19:50:10
Es que si te fijas en stdint.h, un uint8_t muy probablemente esté definido como
1
typedef unsigned char      uint8_t;
de modo que cout recibe un unsigned char, y lo muestra.

cout tiene sobrescrito el operador << de varias formas para insertar un carácter, y una de esas es para unsigned char:
operator<<(std::basic_ostream)

Para que se muestre su valor entero, puedes convertirlo en int:
1
cout << "valor de variable  es: " << static_cast<int>(valor) << endl;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar