Y at-il un nom pour la technique d'utiliser des numéros de base-2 pour encoder une liste d'options uniques?

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

Question

Toutes mes excuses pour la nature assez vague de cette question, je ne l'ai jamais été officiellement enseigné la programmation et Google est plutôt inutile à un type d'auto-assistance comme moi dans ce cas que les mots clés sont assez ambigus.

Je suis en train d'écrire deux ou trois fonctions qui encoder et décoder une liste d'options dans une longue afin qu'ils puissent facilement être passés autour de l'application, vous savez ce genre de chose:

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

Dans ce cas, le numéro 11 représenterait Apple, orange et prune.

Je l'ai travail mais je vois cela utilisé tout le temps donc supposer qu'il ya un nom commun pour la technique, et sans doute toutes sortes de bonnes pratiques et des algorithmes intelligents qui sont au moment juste hors de ma portée.

Edit: Merci à tous, je savais que la réponse viendrait rapidement:)

Était-ce utile?

La solution

Drapeaux Bit. Il est une technique utilisée dans le cadre de Bitmasking.

0001 - Apple
0010 - Oranage
0100 - Banana
1000 - Plum

Chaque 1 est le bit Flagged.

Maintenant, vous pouvez facilement effectuer des opérations au niveau du bit en utilisant les numéro:

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

Autres conseils

Bitflags

va à l'aide pour le c # Drapeaux attribut je vais aller avec un champ de bits ou un ensemble de drapeaux

sorte de relation, dans le matériel il y a aussi codant pour un chaud bien que cela vous ne recevez pas implique combinaisons de jeu de drapeaux

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top