如何用C#编写二进制文字?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

有没有办法在C#中编写二进制文字,如用0x前缀十六进制?0b不起作用。

如果没有,那么做一个简单的方法是什么?某种字符串转换?

提问于
用户回答回答于

C#7.0支持二进制文字(和通过下划线字符的可选数字分隔符)。

一个例子:

int myValue = 0b0010_0110_0000_0011;
用户回答回答于

由于该主题似乎已转向在枚举中声明基于位的标志值,因此我认为值得指出这类事情的方便技巧。左移运算符(<<)将允许将某位推到特定的二进制位置。将它与在同一个类中用其他值声明枚举值的能力相结合,并且对于位标志枚举,有一个非常易于阅读的声明式语法。

[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
}

扫码关注云+社区