有没有一种方法可以在 C# 中编写二进制文字,例如在十六进制前加上 0x 前缀? 0b 不起作用。
如果没有,有什么简单的方法可以做到?某种字符串转换?
最佳答案
更新
C# 7.0 现在有二进制文字,这很棒。
[Flags]
enum Days
{
None = 0,
Sunday = 0b0000001,
Monday = 0b0000010, // 2
Tuesday = 0b0000100, // 4
Wednesday = 0b0001000, // 8
Thursday = 0b0010000, // 16
Friday = 0b0100000, // etc.
Saturday = 0b1000000,
Weekend = Saturday | Sunday,
Weekdays = Monday | Tuesday | Wednesday | Thursday | Friday
}
原帖
由于主题似乎已转向在枚举中声明基于位的标志值,我认为有必要为这类事情指出一个方便的技巧。左移运算符 ( <<
) 将允许您将一位推到特定的二进制位置。将其与根据同一类中的其他值声明枚举值的能力相结合,您将拥有一个非常易于阅读的位标志枚举声明语法。
[Flags]
enum Days
{
None = 0,
Sunday = 1,
Monday = 1 << 1, // 2
Tuesday = 1 << 2, // 4
Wednesday = 1 << 3, // 8
Thursday = 1 << 4, // 16
Friday = 1 << 5, // etc.
Saturday = 1 << 6,
Weekend = Saturday | Sunday,
Weekdays = Monday | Tuesday | Wednesday | Thursday | Friday
}
关于C# 二进制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594720/