非标志枚举上的按位运算

时间:2013-05-26 18:28:57

标签: c#

鉴于以下枚举:

enum MyEnum
{
    ValueOne = 1,
    ValueEmpty,
    ValueTwo = 2,
    ValueThree = 2,
    ValueFour = ValueOne | ValueEmpty,
    ValueFive = ValueTwo | ValueThree
}

ValueFour和ValueFive元素中涉及的操作是什么,因为这些是我得到的值?

//Is assigned 3
var valueOne = (int) MyEnum.ValueFour;

//Is assigned 2
var valueTwo = (int)MyEnum.ValueFive;

由于

1 个答案:

答案 0 :(得分:5)

ValueEmpty为2(ValueOne +1)

valueFour是3(2 | 1)(按位或,00100001 = 0011

ValueFive是(2 | 2),2(按位或,00100010 = 0010