C'è un nome per la tecnica di usare i numeri in base 2 per codificare un elenco di opzioni uniche?

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

Domanda

Ci scusiamo per la programmazione della natura piuttosto vago di questa domanda, non sono mai stato insegnato formalmente e Google è piuttosto inutile un ragazzo di auto-aiuto, come me, in questo caso come le parole chiave sono piuttosto ambigue.

Sto scrivendo un paio di funzioni che codificare e decodificare un elenco di opzioni in un lungo in modo che possano facilmente essere passati in giro per l'applicazione, sai che questo genere di cose:

1 - Apple
2 -
Arancione 4 - Banana
8 - Plum
ecc

In questo caso il numero 11 rappresenterebbe Mela, Arancia e prugna.

ho ottenuto lavorando ma vedo questo mezzo per tutto il tempo in modo da assumere v'è un nome comune per la tecnica, e senza dubbio tutti i tipi di buone pratiche e algoritmi intelligenti che sono al momento appena fuori dalla mia portata.

Edit: Grazie a tutti, mi conosceva la risposta sarebbe arrivata rapidamente:)

È stato utile?

Soluzione

Bandiere bit. Si tratta di una tecnica utilizzata come parte di Bitmasking.

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

Ogni 1 è il bit contrassegnato.

Ora è possibile eseguire facilmente operazioni bit per bit utilizzando quei numeri:

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

Altri suggerimenti

bitflags

andare con l'aiuto per il c # Bandiere attributo ho intenzione di andare con un campo di bit o insieme di flag

sorta di correlato, in hardware c'è anche un caldo codifica se questo implica non si ottengono le combinazioni di bandiere set

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top