C#转换十六进制值

时间:2009-01-29 15:18:35

标签: c# hex

我正在从交换邮箱中读取已分配权限的列表,这些值是通过AccessFlag属性返回的,该属性以十六进制形式返回20001,看起来2000表示READ权限,1表示FULL权限。

我想要做的是将该值显示为READ&完整权限设置。

3 个答案:

答案 0 :(得分:6)

如果你想要的是一个字符串,你需要一个枚举。

所以,如果你有这样的事情:

[Flags]
enum Permissions
{
  Read = 0x20000,
  Full = 0x00001
}

然后你可以转换你的返回值并使用ToString()

string val = ((Permissions )myValue).ToString();

它会出现这样的事情:

Read, Full

请注意,Flags属性对于此类枚举非常重要。

答案 1 :(得分:3)

说实话,我不确定你要求的是什么。

如果你有一个来自AccessFlag的值,并且你想看看它是否具有这些标志中的任何一个,你可以使用按位,例如。

If((accessFlag & 0x2000) != 0) // It has FULL
If((accessFlag & 0x1) != 0) // It has READ
If((accessFlag & 0x2001) != 0) // It has READ AND FULL

这是你要找的吗?

答案 2 :(得分:0)

您可以使用按位XOR运算符筛选出所需的值,并从中推导出权限集。