c# - 将标志枚举转换为二进制字符串表示
问题描述
拿这个枚举:
[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');
推荐阅读
- google-analytics - 如何在 Google Analytics 目标设置中设置动态网址?
- java - Java中Hashtable的求和值
- java - 在Java中存储加权边缘的有效方法?
- json - 如何在 dio 响应中访问数据 - _JsonMap
- node.js - 为什么我重新启动服务器后,passport.js 不能反序列化用户?
- maven - 无法将工件 com.aventstack:extentreports:pom:4.0.9 从/到中央传输:https://传输失败:/
- android - 使用camera2 API createCaptureSession后Android无法播放视频仅音频
- flutter - Flutter 中的 Firebase 电话身份验证
- python - 类“VideoFileClip”的未解析属性引用“resize”
- python - Beautiful Soup Python findAll 返回空列表