Есть ли имя для техники использования номеров базовых 2 для кодирования списка уникальных параметров?
Вопрос
Приносим извинения за довольно расплывчатую природу этого вопроса, я никогда не учил программированию, и Google довольно бесполезен для такого парня с самопомощи, как я, в этом случае, поскольку ключевые слова довольно неоднозначны.
Я пишу пару функций, которые кодируют и декодируют список параметров в долгое время, чтобы их можно было легко передать вокруг приложения, вы знаете такие вещи:
1 - Apple
2 - оранжевый
4 - Банан
8 - слива
и т.п.В этом случае номер 11 будет представлять Apple, Orange & Plum.
У меня это работает, но я вижу это все время, так что предположим, что для этой техники есть общее название, и, несомненно, все виды лучших практик и умных алгоритмов, которые сейчас находятся в моем досягаемости.
РЕДАКТИРОВАТЬ: Спасибо всем, я знал, что ответ придет быстро :)
Решение
Бит -флаги. Это техника, используемая как часть битмаски.
0001 - Apple
0010 - Oranage
0100 - Банан
1000 - слива
Каждый 1 - флаг -бит.
Теперь вы можете легко выполнить бить с помощью этого числа:
if((11 & Apple) == Apple) // The Apple Flag is set
{
// Do Something
}
Другие советы
Поле бит: http://en.wikipedia.org/wiki/bit_field
Битфлаги
Пойдя по помощи для C# Атрибут флагов Я собираюсь пойти с небольшим полем или набором флагов
вроде связана, в оборудовании также есть ОДНА-HOT CODING Хотя это означает, что вы не получаете комбинации набора флагов