Есть ли имя для техники использования номеров базовых 2 для кодирования списка уникальных параметров?

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

Вопрос

Приносим извинения за довольно расплывчатую природу этого вопроса, я никогда не учил программированию, и 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
}

Другие советы

Битфлаги

         

Пойдя по помощи для C# Атрибут флагов Я собираюсь пойти с небольшим полем или набором флагов

вроде связана, в оборудовании также есть ОДНА-HOT CODING Хотя это означает, что вы не получаете комбинации набора флагов

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top