C# 二进制文字

标签 c# syntax binary

有没有一种方法可以在 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/

相关文章:

c# - Windows Phone7 : Restrict inserting certain keys for textbox

c++ - 如何将 char 数组插入到 float vector 中

Razor 分号不见了?

ruby - Ruby 中的 % 表示法

c++ - 从 exe 的 .data 和 .rdata 读取值。字节对齐

c++ - 二进制文件特殊字符

c# - 将 C# 对象存储到 AutoCAD 实体的 XRecord 中

c# - 仅显示来自实体对象的 DataGrid 中的某些列

C# 反序列化列表计数为零

c# - VS2010 中的 HLSL(.fx 文件)语法突出显示?