5

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

オプションのリストをLongにエンコードおよびデコードして、アプリケーションに簡単に渡すことができるようにする関数をいくつか作成しています。この種のことをご存知でしょう。

1-アップル
2-オレンジ
4-バナナ
8-プラム
など

この場合、数字の11は、Apple、Orange、Plumを表します。

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

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

4

4 に答える 4

12

ビットフラグ。これは、ビットマスキングの一部として使用される手法です。

0001-アップル
0010-オラネージ0100-
バナナ
1000-プラム

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

これで、これらの数値を使用してビット単位の演算を簡単に実行できます。

if((11 & Apple) == Apple) // The Apple Flag is set
{
    // Do Something
}
于 2010-06-01T15:18:19.803 に答える
3

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

于 2010-06-01T15:19:37.690 に答える
2

ビットフラグ

         

于 2010-06-01T15:18:56.920 に答える
1

c#フラグ属性のヘルプを使用して、ビットフィールドまたはフラグのセットを使用します

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

于 2010-06-01T15:21:58.297 に答える