Diferencia entre revisiones de «byte»
De ArduWiki
(→Sintaxis) |
(→Comentarios) |
||
(No se muestran 17 ediciones intermedias del mismo usuario) | |||
Línea 2: | Línea 2: | ||
Un '''byte''' almacena un número sin signo de un byte (8 bits), de 0 a 255 (2^8 - 1). Alternativamente puede verse declarado como tipo '''uint8_t''' o '''unsigned char''', sin embargo funciona exactamente igual. | Un '''byte''' almacena un número sin signo de un byte (8 bits), de 0 a 255 (2^8 - 1). Alternativamente puede verse declarado como tipo '''uint8_t''' o '''unsigned char''', sin embargo funciona exactamente igual. | ||
− | {{ | + | {{Tip|Es importante tener en mente que un numero del tipo '''byte''' puede contener hasta 8 valores 0/1 (que es sinonimo de verdadero/falso) empacados en un solo '''byte''' y que se puede operar con ellos con operadores [[Estructura#Operadores_bit_a_bit|bit a bit]] y funciones internas de [[Funciones#Bit_y_Bytes|bits y byte]].}} |
== Sintaxis == | == Sintaxis == | ||
Línea 25: | Línea 25: | ||
|OCT||0||digitos 0~7||0173 | |OCT||0||digitos 0~7||0173 | ||
|- | |- | ||
− | |BIN||B||0 o 1|| | + | |BIN||B||0 o 1||B1111011 |
|} | |} | ||
+ | |||
+ | == Comentarios == | ||
+ | * '''unsigned char''' o '''uint8_t''' es lo mismo que '''byte''' y se prefiere este ultimo. | ||
+ | * La variable del tipo '''byte''' almacenan numero entre 0 y 255 osea 256 números. Ahora te pregunto cuanto es 0 - 1 ? en nuestro ejemplo la respuesta correcta es 255 porque es el numero que esta antes de 0. Exactamente por el otro extremo el numero que sigue de 255 es 0. A esto se le llama lógica boleana. Ahora supongamos que quieres prende un foco por 10 números e inicias el proceso en 22, por lo que preguntas if (números - tiempo = 10), se apagaría cuando números llegue a 32 (32 - 22 = 10). Ahora supón que se prende en 250, cuando apagara ? la respuesta es cuando números llegue a 5 (5 - 250 = 10). | ||
== Advertencias == | == Advertencias == | ||
− | * Si sumas 1 al valor | + | * Si sumas 1 al valor máximo que de 255 pasa a 0. |
− | * Si restas 1 al valor | + | * Si restas 1 al valor mínimo que de 0 pasa a 255. |
+ | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
byte a = 255; | byte a = 255; | ||
Línea 38: | Línea 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == Ejemplos 1 == |
− | ''' | + | <syntaxhighlight lang="c++"> |
+ | byte n = 'A'; | ||
+ | byte n = 65; //Valor ASCII de letra A | ||
+ | uint8_t n = 65; | ||
+ | byte x = 0x41; //0x = formato hexadecimal, 65 | ||
+ | byte x = 0101; //0 = formato octal, 65 | ||
+ | byte x = B1000001; //B = formato binario, 65 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 2 == | ||
+ | <syntaxhighlight lang="c++"> | ||
+ | byte x, y, z = 12; //Error, x e y están declaradas pero no inicializadas. | ||
+ | byte x = 12,y = 12,z = 12; //Ok | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 3 == | ||
+ | En este ejemplo hacemos la variable byte igual a un '''caracter'''. | ||
− | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
− | + | void setup() { | |
− | + | Serial.begin(115000); | |
− | + | Serial.println("Letras mayusculas:"); | |
− | + | for (char c='A'; c<='Z'; c++){ | |
− | + | Serial.write(c); //Imprime el carácter | |
+ | Serial.print(", dec: "); | ||
+ | Serial.println(c); //Imprime su valor ASCII decimal | ||
+ | delay(100); | ||
+ | } | ||
+ | } | ||
+ | void loop() { | ||
+ | //Nada | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Tipo dato</categorytree> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Referencias == | == Referencias == | ||
− | * [https://www.arduino.cc/reference/es/language/ | + | * [https://www.arduino.cc/reference/es/language/variables/constants/integerconstants/ Guia de referencia de Arduino] |
− | [[Category: | + | [[Category:Tipo dato]] |
Revisión actual del 16:41 24 ene 2020
Contenido
Descripción
Un byte almacena un número sin signo de un byte (8 bits), de 0 a 255 (2^8 - 1). Alternativamente puede verse declarado como tipo uint8_t o unsigned char, sin embargo funciona exactamente igual.
Tip: Es importante tener en mente que un numero del tipo byte puede contener hasta 8 valores 0/1 (que es sinonimo de verdadero/falso) empacados en un solo byte y que se puede operar con ellos con operadores bit a bit y funciones internas de bits y byte.
Sintaxis
byte variable [= valor]; uint8_t variable [= valor]; unsigned char variable [= valor];
Parametros
- variable
- nombre de la variable.
- valor
- valor entre 0~255. Parámetro opcional.
Base | Prefijo | Comentario | Ejemplo |
---|---|---|---|
DEC | ninguno | Dígitos 0~9 | 123 |
HEX | 0x | dígitos 0~9 + Caracteres A~F | 0x7B |
OCT | 0 | digitos 0~7 | 0173 |
BIN | B | 0 o 1 | B1111011 |
Comentarios
- unsigned char o uint8_t es lo mismo que byte y se prefiere este ultimo.
- La variable del tipo byte almacenan numero entre 0 y 255 osea 256 números. Ahora te pregunto cuanto es 0 - 1 ? en nuestro ejemplo la respuesta correcta es 255 porque es el numero que esta antes de 0. Exactamente por el otro extremo el numero que sigue de 255 es 0. A esto se le llama lógica boleana. Ahora supongamos que quieres prende un foco por 10 números e inicias el proceso en 22, por lo que preguntas if (números - tiempo = 10), se apagaría cuando números llegue a 32 (32 - 22 = 10). Ahora supón que se prende en 250, cuando apagara ? la respuesta es cuando números llegue a 5 (5 - 250 = 10).
Advertencias
- Si sumas 1 al valor máximo que de 255 pasa a 0.
- Si restas 1 al valor mínimo que de 0 pasa a 255.
byte a = 255;
a++; //a es 0
byte b = 0;
b--; //b es 255
Ejemplos 1
byte n = 'A';
byte n = 65; //Valor ASCII de letra A
uint8_t n = 65;
byte x = 0x41; //0x = formato hexadecimal, 65
byte x = 0101; //0 = formato octal, 65
byte x = B1000001; //B = formato binario, 65
Ejemplo 2
byte x, y, z = 12; //Error, x e y están declaradas pero no inicializadas.
byte x = 12,y = 12,z = 12; //Ok
Ejemplo 3
En este ejemplo hacemos la variable byte igual a un caracter.
void setup() {
Serial.begin(115000);
Serial.println("Letras mayusculas:");
for (char c='A'; c<='Z'; c++){
Serial.write(c); //Imprime el carácter
Serial.print(", dec: ");
Serial.println(c); //Imprime su valor ASCII decimal
delay(100);
}
}
void loop() {
//Nada
}
Vea también