ベース2番号を使用して一意のオプションのリストをエンコードする手法の名前はありますか?

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

質問

この質問のかなり曖昧な性質についてお詫びします。私は正式にプログラミングを教えられたことはありません。この場合、キーワードはかなりあいまいなので、Googleは私のような自助の男にはかなり役に立たない。

私は、オプションのリストを長い間にエンコードしてデコードするいくつかの関数を書いています。

1-リンゴ
2-オレンジ
4-バナナ
8-プラム

この場合、11番はApple、Orange、およびPlumを表します。

私はそれを機能させましたが、これは常に使用されていると思うので、このテクニックには一般的な名前があり、間違いなく私の手の届かないところにあるあらゆる種類のベストプラクティスと巧妙なアルゴリズムがあります。

編集:すべてのおかげで、私は答えが迅速に来ることを知っていました:)

役に立ちましたか?

解決

ビットフラグ。これは、ビットマスクの一部として使用されるテクニックです。

0001-リンゴ
0010 -Oranage
0100-バナナ
1000-プラム

各1はフラグ付きビットです。

これで、これらの番号を使用してビットワイズ操作を簡単に実行できます。

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

他のヒント

ビットフィールド: http://en.wikipedia.org/wiki/bit_field

Bitflags

         

C#の助けを借りて行く フラグ属性 私は少しフィールドまたはフラグのセットで行くつもりです

関連するようなもの、ハードウェアにもあります ワンホットエンコーディング これは、あなたがセットのフラグの組み合わせを取得しないことを意味しますが

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top