¿Existe un nombre para la técnica de usar números Base-2 para codificar una lista de opciones únicas?

StackOverflow https://stackoverflow.com/questions/2950962

Pregunta

Disculpas por la naturaleza bastante vaga de esta pregunta, nunca me han enseñado formalmente la programación y Google es bastante inútil para un tipo de autoayuda como yo en este caso, ya que las palabras clave son bastante ambiguas.

Estoy escribiendo un par de funciones que codifican y decodifican una lista de opciones en una larga para que puedan pasar fácilmente por la aplicación, usted sabe este tipo de cosas:

1 - Apple
2 - Orange
4 - Banana
8 - ciruela
etc.

En este caso, el número 11 representaría a Apple, Orange & Plum.

Lo tengo funcionando, pero veo que esto se usa todo el tiempo, así que suponga que hay un nombre común para la técnica, y sin duda todo tipo de mejores prácticas y algoritmos inteligentes que están en este momento solo fuera de mi alcance.

Editar: Gracias a todos, sabía que la respuesta vendría rápidamente :)

¿Fue útil?

Solución

Banderas de bits. Es una técnica utilizada como parte de Bitmasking.

0001 - Apple
0010 - oranage
0100 - Banana
1000 - ciruela

Cada 1 es el bit marcado.

Ahora puede realizar fácilmente operaciones bits usando ese número:

if((11 & Apple) == Apple) // The Apple Flag is set
{
    // Do Something
}

Otros consejos

Bitflags

         

pasando por la ayuda de la C# Atributo de banderas Voy a ir con un campo o un conjunto de banderas

Algo relacionado, en el hardware también hay codificación de un solo estado Aunque esto implica que no obtienes combinaciones de banderas

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top