标志枚举中 按位或运算的理解我定义了标志枚举如下[Flags]enum Weeks{Sunday=1,Monday=2,Tuesday=4,Wensday=8,Thursday=16,Friday=32,Saturday=64}然后测试代码中是Console.WriteLine("星期二和星期四 为开会日");Weeks meet
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 20:24:59
标志枚举中 按位或运算的理解我定义了标志枚举如下[Flags]enum Weeks{Sunday=1,Monday=2,Tuesday=4,Wensday=8,Thursday=16,Friday=32,Saturday=64}然后测试代码中是Console.WriteLine("星期二和星期四 为开会日");Weeks meet
标志枚举中 按位或运算的理解
我定义了标志枚举如下
[Flags]
enum Weeks
{
Sunday=1,
Monday=2,
Tuesday=4,
Wensday=8,
Thursday=16,
Friday=32,
Saturday=64
}
然后测试代码中是
Console.WriteLine("星期二和星期四 为开会日");
Weeks meetingDays = Weeks.Tuesday | Weeks.Thursday; //按位‘或’运算
Console.WriteLine(meetingDays+"\n");
输出结果是 Tuscany,Thursday
按位‘或’运算(同一个位上相同则为0不同则为1)得到的不是一个结果么?
比如 “1|2”结果是“3”,
但是在上面的结果中为什么会输出两个结果 “周二和周四”呢?
标志枚举中 按位或运算的理解我定义了标志枚举如下[Flags]enum Weeks{Sunday=1,Monday=2,Tuesday=4,Wensday=8,Thursday=16,Friday=32,Saturday=64}然后测试代码中是Console.WriteLine("星期二和星期四 为开会日");Weeks meet
你的按位或的结果确实只有一个,但是却有两个位被置位了啊.
这个toString是调用默认的toString,所以会使用G格式来显示.
因为你设置了[Flags]标志,所以会根据多个位把结果组合起来显示,返回用分隔符分隔的这些常数名称的列表
MSDN里面对于G格式的描述: