Diferencia entre revisiones de «byte»

De ArduWiki
Saltar a: navegación, buscar
(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.
  
{{Nota|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]].}}
+
{{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||B1110011
+
|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 maximo que de 255 pasa a 0.
+
* Si sumas 1 al valor máximo que de 255 pasa a 0.
* Si restas 1 al valor minimo que de 0 pasa a 255.
+
* 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>
  
== Comentario ==
+
== Ejemplos 1 ==
'''unsigned char''' es lo mismo que '''byte''' y se prefiere este ultimo.
+
<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'''.
  
== Ejemplos ==
 
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
byte n = 21;
+
void setup() {
byte x = B11;   //B = formato binario, 3
+
  Serial.begin(115000);
byte x = 0b11; //0b = formato binario, 3
+
  Serial.println("Letras mayusculas:");
byte x = 03;   //0 = formato octal, 3
+
  for (char c='A'; c<='Z'; c++){
byte x = 0x3;   //0x = formato hexadecimal, 3
+
      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 ==
* [[int]]
+
<categorytree mode=all>Tipo dato</categorytree>
* [[long]]
 
* [[float]]
 
* [[double]] - solo [[MEGA]]
 
* [[unsigned int]]
 
* [[word]]
 
* [[unsigned long]]
 
  
 
== Referencias ==
 
== Referencias ==
* [https://www.arduino.cc/reference/es/language/functions/time/millis/ Guia de referencia de Arduino]
+
* [https://www.arduino.cc/reference/es/language/variables/constants/integerconstants/ Guia de referencia de Arduino]
  
[[Category:Variables]]
+
[[Category:Tipo dato]]

Revisión actual del 16:41 24 ene 2020

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.
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

  • 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

  bool
  byte
  char
  int
  long
  void
  word


Referencias