将标志枚举转换为二进制字符串表示
Convert flags enum to binary string representation
接受这个枚举:
[Flags]
public enum Colors
{
NONE = 0,
RED = 1,
BLUE = 2,
YELLOW = 4,
BLACK = 8,
WHITE = 16
}
我想将这些颜色的选择保存为代表一个字节的人类可读字符串。例如,
Colors choice = Colors.RED | Colors.WHITE
应该是
"00010001"
实现此目标的最佳方法是什么?
让我们一步一步来制作表示:
- 我们想要整数,而不是
enum
:(int) choice
- 为二进制格式
Convert.ToString((int) choice, 2)
- 最后,我们想要至少
8
个数字;所以我们必须在必要时用 '0'
填充:.PadLeft(8, '0')
将所有组合在一起:
string result = Convert.ToString((int) choice, 2).PadLeft(8, '0');
接受这个枚举:
[Flags]
public enum Colors
{
NONE = 0,
RED = 1,
BLUE = 2,
YELLOW = 4,
BLACK = 8,
WHITE = 16
}
我想将这些颜色的选择保存为代表一个字节的人类可读字符串。例如,
Colors choice = Colors.RED | Colors.WHITE
应该是
"00010001"
实现此目标的最佳方法是什么?
让我们一步一步来制作表示:
- 我们想要整数,而不是
enum
:(int) choice
- 为二进制格式
Convert.ToString((int) choice, 2)
- 最后,我们想要至少
8
个数字;所以我们必须在必要时用'0'
填充:.PadLeft(8, '0')
将所有组合在一起:
string result = Convert.ToString((int) choice, 2).PadLeft(8, '0');