Diferencia entre revisiones de «byte»
De ArduWiki
(Página creada con «== Descripción == == Sintaxis == <pre> </pre> == Advertencias == == Ejemplo == <pre> </pre> == Vea también == == Referencias == * [https://www.arduino.cc/reference/e...») |
(→Comentarios) |
||
(No se muestran 35 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
== Descripción == | == 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 [[Estructura#Operadores_bit_a_bit|bit a bit]] y funciones internas de [[Funciones#Bit_y_Bytes|bits y byte]].}} | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
+ | byte variable [= valor]; | ||
+ | uint8_t variable [= valor]; | ||
+ | unsigned char variable [= valor]; | ||
</pre> | </pre> | ||
+ | |||
+ | == Parametros == | ||
+ | ;variable: nombre de la variable. | ||
+ | ;valor: valor entre 0~255. Parámetro opcional. | ||
+ | |||
+ | {| class="wikitable col2cen" | ||
+ | |+Posibles formateadores | ||
+ | !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 == | == 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. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | byte a = 255; | ||
+ | a++; //a es 0 | ||
+ | byte b = 0; | ||
+ | b--; //b es 255 | ||
+ | </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 == | + | == 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++"> | ||
+ | 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> | ||
== 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