将标志枚举转换为二进制字符串表示形式

时间:2020-08-05 09:16:21

标签: c# string enums byte

使用此枚举:

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

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

Colors choice = Colors.RED | Colors.WHITE

应显示为

"00010001"

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

1 个答案:

答案 0 :(得分:3)

让我们逐步展示:

  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');
相关问题