Diferencia entre revisiones de «bool»

De ArduWiki
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
Una variable '''bool''' o '''boolean''' es aquella donde sólo se pueden almacenar dos posibles valores: [[true / false]], [[HIGH / LOW]], 1 / 0, etc. Dicha variable puede usarse directamente como condición de un [[if... else]], [[while]], [[do... while]] y [[for]]
+
El tipo de dato '''bool''' o '''boolean''' ocupa un byte (8 bits) y es aquella donde sólo se pueden contener dos posibles valores: [[true / false]], [[HIGH / LOW]], 1 / 0, etc. Dicha variable puede usarse directamente como condición de un [[if... else]], [[while]] y [[do... while]].
  
Su uso más común es como "banderas" para cambiar un estado binario en la ejecución (como alternar entre dos jugadores en un juego por turnos), o indicar la salida de un ciclo o bucle. También se puede utilizar para no repetir una misma comparación en múltiples '''if''', al menos donde no tendría sentido verificar constantemente si el resultado pudo haber cambiado en el tiempo.
+
Su uso más común es como "banderas" (flag) para cambiar un estado binario en la ejecución (como alternar entre dos jugadores en un juego por turnos), o indicar la salida de un ciclo o bucle. También se puede usar para no repetir una misma comparación en múltiples [[if... else]], al menos donde no tendría sentido verificar constantemente si el resultado pudo haber cambiado en el tiempo.
  
 
{{Nota|A diferencia de otros lenguajes, en Arduino (C++), tanto para la asignación en un '''bool''' o '''boolean''', como en una condición; se pueden introducir valores que no sean de este tipo (enteros, punteros y punto flotantes). Al hacerlo, implícitamente ocurre la comparación "diferente de cero"; dicho en otras palabras, sería '''falso''' si el valor ingresado es igual a cero.}}
 
{{Nota|A diferencia de otros lenguajes, en Arduino (C++), tanto para la asignación en un '''bool''' o '''boolean''', como en una condición; se pueden introducir valores que no sean de este tipo (enteros, punteros y punto flotantes). Al hacerlo, implícitamente ocurre la comparación "diferente de cero"; dicho en otras palabras, sería '''falso''' si el valor ingresado es igual a cero.}}
Línea 8: Línea 8:
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
bool alerta = false;
+
bool variable [= valor];
boolean tieneResiduo = numero % 8; // Según la nota anterior, sería falso si la operación módulo resulta en cero.
 
boolean b = -15; // Hasta los números negativos son diferentes de cero; por lo tanto, es verdadero.
 
 
</pre>
 
</pre>
 +
 +
== Parametros ==
 +
;variable: nombre de la variable a definir.
 +
;valor: los posibles valores son true o false. Pero también puedes usar 0 para falso y cualquier valor diferente de 0 para true y LOW y HIGH.
  
 
== Advertencias ==
 
== Advertencias ==
Un '''bool''' o '''boolean''' a pesar de sólo poder almacenar dos posibles valores, siempre ocupa 1 byte en memoria. En caso de requerir múltiples variables de este tipo, pero a la vez se está quedando corto de memoria (RAM); en ese caso se recomienda usar la técnica de almacenarlos como bits en un [[byte]] (mira que un bit también tiene sólo dos posibles valores), para eso puedes utilizar las funciones [[bitRead()]], [[bitWrite()]], [[bitClear()]] y [[bitSet()]].
+
Un '''bool''' o '''boolean''' a pesar de sólo poder almacenar dos posibles valores, siempre ocupa 1 byte en memoria. En caso de requerir múltiples variables de este tipo, pero a la vez se está quedando corto de memoria [[RAM]]; en ese caso se recomienda usar la técnica de almacenarlos como bits en un [[byte]] (mira que un bit también tiene sólo dos posibles valores), para eso puedes utilizar las funciones [[bitRead()]], [[bitWrite()]], [[bitClear()]] y [[bitSet()]].
 +
 
 +
== Ejemplo 1 ==
 +
bool alerta = false;
 +
bool estado = HIGH;          //verdadero
 +
bool b = -15;                //verdadero
 +
bool residuo = numero % 8;  //falso si no hay residuo.
  
== Ejemplo ==
+
== Ejemplo 2 ==
 +
Un ejemplo de parpadeo.
 
<pre>
 
<pre>
bool estadoLED = false;
+
bool estado = false;
 
 
 
void setup() {
 
void setup() {
 
   pinMode(LED_BUILTIN, OUTPUT);
 
   pinMode(LED_BUILTIN, OUTPUT);
 
}
 
}
 
 
void loop() {
 
void loop() {
   digitalWrite(LED_BUILTIN, estadoLED);
+
   digitalWrite(LED_BUILTIN, estado);
   estadoLED = !estadoLED; // Invertir el valor de estadoLED
+
   estado = !estado;             //Invertir el valor de estado
   delay(1000);
+
   delay(500);
 
}
 
}
 
</pre>
 
</pre>

Revisión del 00:22 23 jun 2018

Descripción

El tipo de dato bool o boolean ocupa un byte (8 bits) y es aquella donde sólo se pueden contener dos posibles valores: true / false, HIGH / LOW, 1 / 0, etc. Dicha variable puede usarse directamente como condición de un if... else, while y do... while.

Su uso más común es como "banderas" (flag) para cambiar un estado binario en la ejecución (como alternar entre dos jugadores en un juego por turnos), o indicar la salida de un ciclo o bucle. También se puede usar para no repetir una misma comparación en múltiples if... else, al menos donde no tendría sentido verificar constantemente si el resultado pudo haber cambiado en el tiempo.

Nota: A diferencia de otros lenguajes, en Arduino (C++), tanto para la asignación en un bool o boolean, como en una condición; se pueden introducir valores que no sean de este tipo (enteros, punteros y punto flotantes). Al hacerlo, implícitamente ocurre la comparación "diferente de cero"; dicho en otras palabras, sería falso si el valor ingresado es igual a cero.


Sintaxis

bool variable [= valor];

Parametros

variable
nombre de la variable a definir.
valor
los posibles valores son true o false. Pero también puedes usar 0 para falso y cualquier valor diferente de 0 para true y LOW y HIGH.

Advertencias

Un bool o boolean a pesar de sólo poder almacenar dos posibles valores, siempre ocupa 1 byte en memoria. En caso de requerir múltiples variables de este tipo, pero a la vez se está quedando corto de memoria RAM; en ese caso se recomienda usar la técnica de almacenarlos como bits en un byte (mira que un bit también tiene sólo dos posibles valores), para eso puedes utilizar las funciones bitRead(), bitWrite(), bitClear() y bitSet().

Ejemplo 1

bool alerta = false; bool estado = HIGH; //verdadero bool b = -15; //verdadero bool residuo = numero % 8; //falso si no hay residuo.

Ejemplo 2

Un ejemplo de parpadeo.

bool estado = false;
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
  digitalWrite(LED_BUILTIN, estado);
  estado = !estado;             //Invertir el valor de estado
  delay(500);
}

Vea también

Referencias