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



使用此枚举:

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

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

Colors choice = Colors.RED | Colors.WHITE

应该显示为

"00010001"

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

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

  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');

最新更新