【问题标题】:Convert flags enum to binary string representation [duplicate]将标志枚举转换为二进制字符串表示
【发布时间】:2020-08-05 09:16:21
【问题描述】:

获取这个枚举:

[Flags]
public enum Colors
{
  NONE = 0,
  RED = 1,
  BLUE = 2,
  YELLOW = 4,
  BLACK = 8,
  WHITE = 16
}

我想将这些颜色的选择保存为表示一个字节的人类可读字符串。例如,

Colors choice = Colors.RED | Colors.WHITE

应该是

"00010001"

实现这一目标的最佳方法是什么?

【问题讨论】:

  • string result = Convert.ToString((int) choice, 2).PadLeft(8, '0');

标签: c# string enums byte


【解决方案1】:

让我们一步一步地进行表示:

  1. 我们想要整数,而不是enum: (int) choice
  2. 二进制格式Convert.ToString((int) choice, 2)
  3. 最后,我们希望至少 8 个数字;所以我们必须在必要时通过'0' 填充:.PadLeft(8, '0')

结合在一起:

 string result = Convert.ToString((int) choice, 2).PadLeft(8, '0');

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多