Este artigo não cita fontes confiáveis. (Outubro de 2015) |
Em informática, uma flag (termo da língua inglesa que significa, literalmente, "bandeira") é um mecanismo lógico que funciona como semáforo: uma entidade (objecto) detém como ativa uma determinada flag se a característica associada a essa flag estiver presente. Em programação, a utilização de flags como interruptor (isto é, valores 1/0, ligado/desligado, ativo/inativo) permite optimizar as estruturas de dados, na medida em que basta apenas um bit para ativar determinada característica. Assim, com um simples byte podem-se especificar 8 características de um objecto, conhecendo, de antemão, o significado de cada bit.
Se a estrutura da flag for baseada num sistema binário, então as operações de ativação e desativação e teste serão também optimizadas (ao nível do processamento) já que apenas requerem operações simples de lógica binária.
Exemplos
Observação: o número de bits é o mesmo número de flags (por exemplo: 8 bits representam 8 flags).
Configuração | flag #1 | flag #2 | flag #3 | flag #4 |
0101 | Desabilitada | Habilitada | Desabilitada | Habilitada |
1101 | Habilitada | Habilitada | Desabilitada | Habilitada |
Informações
Bits / Flags | Bytes | Valor |
1 | 1/8 | 0 a 1 |
2 | 1/4 | 0 a 3 |
3 | 3/8 | 0 a 7 |
4 | 1/2 | 0 a 15 |
5 | 5/8 | 0 a 31 |
6 | 6/8 | 0 a 63 |
7 | 7/8 | 0 a 127 |
8 | 1 | 0 a 255 |
Também existem números de bits maiores, como, por exemplo, 32 flags (32 bits = 4 bytes) que representam de 0 a 4 294 967 295 em decimal (ou FFFFFFFF em hexadecimal)