2

ushort 番号とその逆に変換できる enum(eration) をコーディングする必要があります。何らかの理由で、(バイトではなく) ビットで作業する必要があります。

[Flags]
public enum XFlags : ushort//word
{
    None = 0,
    Sequenced = "option enabled if LEFTmost bit is == 1",
    Extra = "option enabled if RIGHTmost bit is == 1"
};

私の問題は、ビットを指定する方法がわからないことです。また、フラグ変数にいくつかのフラグを使用するには、実際に [Flags] 機能を使用する必要があります。したがって、両方のフラグを使用すると、(ushort) ビットが 1000000000000001 になるはずです。

それは可能ですか?

4

1 に答える 1

3

これを試してください(基本的には、コードで表現したものとまったく同じで、 に変わりますushort):

[Flags]
public enum XFlags : ushort//word
{
    None = 0,
    Sequenced = 0x8000,
    Extra = 0x0001
}

と組み合わせるXFlags.Sequencedと、XFlags.Extra左端ushortと右端のビットが設定された になります。

于 2013-09-19T09:51:04.043 に答える