Существует ли название метода использования основы 2 числа для кодирования списка уникальных опций?

Извинения за довольно неопределенную природу этого вопроса, мне официально никогда не преподавали, программируя, и Google довольно бесполезен парню самоусовершенствования как я в этом случае, поскольку ключевые слова довольно неоднозначны.

Я пишу несколько функций, которые кодируют и декодируют список опций в Длинное, таким образом, они могут легко быть розданы приложение, Вы знаете такого рода вещь:

1 - Apple
2 - Оранжевый
4 - Банан
8 - Слива
и т.д.

В этом случае номер 11 представил бы Apple, Orange & Plum.

У меня есть он работа, но я вижу используемый все время, так предположите, что существует общее название для техники и несомненно все виды лучшей практики и умных алгоритмов, которые являются в данный момент только вне моей досягаемости.

Править: Благодаря всем я знал, что ответ появится быстро :)

5
задан Lunatik 1 June 2010 в 15:22
поделиться

4 ответа

Битовые флаги. Это метод, используемый как часть битовой маски.

0001 - Apple
0010 - Оранаж
0100 - Банан
1000 - Plum

Каждая единица - это помеченный бит.

Теперь вы можете легко выполнять побитовые операции, используя эти числа:

if((11 & Apple) == Apple) // The Apple Flag is set
{
    // Do Something
}
12
ответ дан 18 December 2019 в 09:05
поделиться

Битовое поле: http://en.wikipedia.org/wiki/Bit_field

3
ответ дан 18 December 2019 в 09:05
поделиться

Bitflags

2
ответ дан 18 December 2019 в 09:05
поделиться

по справке к атрибуту c# Flags я собираюсь перейти к битовому полю или набору флагов

вроде как связано, в аппаратуре есть также one-hot encoding, хотя это подразумевает, что вы не получите комбинации установленных флагов

.
1
ответ дан 18 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: