Flag
# Flag

En programación, la bandera o flag se refiere a uno o más bits que se utilizan para almacenar un valor binario o código que tiene asignado un significado. Las banderas normalmente forman parte de una determinada estructura de datos, como un registro de una base de datos, y el significado del valor que figura en una bandera típicamente se definirá en relación con la estructura de datos de la que forma parte.

En muchos casos el valor binario de la bandera se entenderá como la representación de uno de los posibles estados. En otras ocasiones, los valores binarios pueden representar uno o más atributos de un campo de bits, a menudo relacionados con habilidades o permisos, cómo se puede escribir o borrar. De todos modos, hay muchos otros posibles significados que pueden asignarse a los valores de la bandera. Un uso común de las banderas es marcar o designar estructuras de datos para un posterior tratamiento.

Dentro de los microprocesadores y otros dispositivos lógicos, las banderas se utilizan mayoritariamente para controlar o indicar el estado intermedio o final o el resultado de diferentes operaciones. Por ejemplo, los microprocesadores suelen tener un registro de estado que se compone de varias de estas banderas que se usarán para indicar varias condiciones establecidas como resultado de una operación, como podría ser hacer notar que ha habido un desbordamiento en una operación aritmética. Una vez establecidas, las banderas pueden utilizarse en operaciones posteriores como el control de flujo en una operación de salto condicional. Por ejemplo, la instrucción en lenguaje ensamblador de Intel x86 je (salta si igual) comprobará la bandera Z (cero) del registro de estado y si está establecido (por una operación anterior) ejecutará un salto a la dirección indicada.

A los diferentes parámetros de control de una línea de comandos también se les suele llamar banderas. Estas líneas de comandos utilizan un analizador sintáctico para traducir los parámetros pasados en banderas al uso de las vistas en este artículo.

