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

本文关键字:左边 右边 ushort 设置 | 更新日期: 2023-09-27 18:32:01

我需要编码enum(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"
};

我的问题是我不知道如何指定位。此外,我实际上需要使用[标志]功能,为标志变量使用几个标志。所以使用这两个标志应该给我(ushort)位1000000000000001?

这可能吗?

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

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

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

现在将XFlags.SequencedXFlags.Extra结合起来,您最终会得到一个ushort,设置了最左边和最右边的位。