如何在C#中设置ushort的最左边和最右边的位

时间:2013-09-19 09:46:10

标签: c# enums bit

我需要编码枚举(eration),它可以转换为ushort数字并返回。出于某种原因,我需要使用位(而不是字节)。

[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]功能,为flag变量使用少量标志。那么使用这两个标志应该给我(ushort)位1000000000000001?

这可能吗?

1 个答案:

答案 0 :(得分:3)

试试这个(它基本上就是你在代码中表达的内容,变成了ushort):

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

现在将XFlags.SequencedXFlags.Extra合并,最终会得到ushort,并设置最左边和最右边的位。