Diferencia entre revisiones de «byte»
De ArduWiki
(→Ejemplos) |
(→Comentarios) |
||
(No se muestran 6 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 28: | Línea 28: | ||
|} | |} | ||
− | == | + | == Comentarios == |
− | '''unsigned char''' es lo mismo que '''byte''' y se prefiere este ultimo. | + | * '''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 == | ||
Línea 63: | Línea 64: | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
void setup() { | void setup() { | ||
− | Serial.begin( | + | Serial.begin(115000); |
Serial.println("Letras mayusculas:"); | Serial.println("Letras mayusculas:"); | ||
for (char c='A'; c<='Z'; c++){ | for (char c='A'; c<='Z'; c++){ | ||
Serial.write(c); //Imprime el carácter | Serial.write(c); //Imprime el carácter | ||
Serial.print(", dec: "); | Serial.print(", dec: "); | ||
− | Serial.println(c); //Imprime su valor decimal | + | Serial.println(c); //Imprime su valor ASCII decimal |
+ | delay(100); | ||
} | } | ||
} | } | ||
Línea 77: | Línea 79: | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Tipo dato</categorytree> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Referencias == | == Referencias == | ||
* [https://www.arduino.cc/reference/es/language/variables/constants/integerconstants/ Guia de referencia de Arduino] | * [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