Diferencia entre revisiones de «Variables»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 6: Línea 6:
|8 bits
|8 bits
|-
|-
|int (signed y unsigned)*
|int (signed y unsigned)
|16 bits
|16 bits
|-
|-
Línea 28: Línea 28:
|}
|}


*Unsigned
{|
*Signed
|-
*uint8_t
|typedef signed char
*Byte
|int8_t
*Int
|-
*Long
|typedef unsigned char
*Char
|uint8_t
|-
|typedef signed int
|int16_t
|-
|typedef unsigned int
|uint16_t
|-
|typedef signed long int
|int32_t
|-
|typedef unsigned long int
|uint32_t
|-
|typedef signed long long int
|int64_t
|-
|typedef unsigned long long int
|uint64_t
|}


*Las caracteristicas signed o unsigned sirven para decir si el número podrá ser negativo. Si no se puede poner en negativo tendremos capacidad para más números
*Las caracteristicas signed o unsigned sirven para decir si el número podrá ser negativo. Si no se puede poner en negativo tendremos capacidad para más números
*En Arduino se puede poner la variable byte. Pero es un typedef de un char


Las variables son espacios de memoria donde se guardan los datos necesarios par ala ejecución del programa. Estos datos pueden ser numeros enteros, numeros de coma flotante, ... Una cosa a tener en cuenta es que los caracteres son numeros que mediante la tabla ASCII se convierten en letras, pero lo que se guarda en memoria son números, no letras.<br/>
Las variables son espacios de memoria donde se guardan los datos necesarios par ala ejecución del programa. Estos datos pueden ser numeros enteros, numeros de coma flotante, ... Una cosa a tener en cuenta es que los caracteres son numeros que mediante la tabla ASCII se convierten en letras, pero lo que se guarda en memoria son números, no letras.<br/>
<br/>
<br/>
Según se ve en la tabla las variables de tipo char ocupan 8 bits y se suelen usar para los programas de los microcontroladores cuando necesitas de una variable que sabes que no será más grande de 8 bits. Cuando se usa no se utiliza la notación char a=1; sinó uint8_t (unsigned int 8 bits) o sint8_t (signed int 8 bits), pero esto solo es un typedef de unsigned char o signed char.
uint8_t significa unsigned int de 8 bits. Las variables char también son de 8 bits y se podrian utilizar indistintamente, pero no es recomendable porque el código tiene más probabilidad de ser portable si se utilitza uint8_t para designar una variable de 8 bits debido a que no en todos los procesadores el char es de 8 bits.<br/>
Con los int pasa lo mismo, en la table pone que son de 16 bits, pero puedes encontrar plataformas donde sean de 32 bits (creo que en los procesadores de 64 bits)<br/>
<br/>
En resumen, si se quiere estar seguro que el código va a ser compatible y las variables ocuparan solo lo que nosotros queremos que ocupen, es mejor utilizar las versiones uintN_t o intN_t

Revisión del 08:42 19 mar 2013

Tipo de dato Tamaño de bits
char (signed y unsigned) 8 bits
int (signed y unsigned) 16 bits
short (signed y unsigned) 16 bits
long (signed y unsigned) 32 bits
long long (int) signed y unsigned 64 bits
float 32 bits
double 32 bits
double 64 bits
typedef signed char int8_t
typedef unsigned char uint8_t
typedef signed int int16_t
typedef unsigned int uint16_t
typedef signed long int int32_t
typedef unsigned long int uint32_t
typedef signed long long int int64_t
typedef unsigned long long int uint64_t
  • Las caracteristicas signed o unsigned sirven para decir si el número podrá ser negativo. Si no se puede poner en negativo tendremos capacidad para más números

Las variables son espacios de memoria donde se guardan los datos necesarios par ala ejecución del programa. Estos datos pueden ser numeros enteros, numeros de coma flotante, ... Una cosa a tener en cuenta es que los caracteres son numeros que mediante la tabla ASCII se convierten en letras, pero lo que se guarda en memoria son números, no letras.

uint8_t significa unsigned int de 8 bits. Las variables char también son de 8 bits y se podrian utilizar indistintamente, pero no es recomendable porque el código tiene más probabilidad de ser portable si se utilitza uint8_t para designar una variable de 8 bits debido a que no en todos los procesadores el char es de 8 bits.
Con los int pasa lo mismo, en la table pone que son de 16 bits, pero puedes encontrar plataformas donde sean de 32 bits (creo que en los procesadores de 64 bits)

En resumen, si se quiere estar seguro que el código va a ser compatible y las variables ocuparan solo lo que nosotros queremos que ocupen, es mejor utilizar las versiones uintN_t o intN_t