首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用十六进制读取枚举

使用十六进制读取枚举
EN

Stack Overflow用户
提问于 2016-10-31 18:32:02
回答 1查看 107关注 0票数 0

嗨,有人能帮我一下吗?这是我的枚举代码

代码语言:javascript
复制
    Enum _WSC_SECURITY_PROVIDER
    WSC_SECURITY_PROVIDER_FIREWALL = &H1
    WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS = &H2
    WSC_SECURITY_PROVIDER_ANTIVIRUS = &H4
    WSC_SECURITY_PROVIDER_ANTISPYWARE = &H8
    WSC_SECURITY_PROVIDER_INTERNET_SETTINGS = &H16
    WSC_SECURITY_PROVIDER_USER_ACCOUNT_CONTROL = &H32
    WSC_SECURITY_PROVIDER_SERVICE = &H64
    WSC_SECURITY_PROVIDER_NONE = &H0
End Enum
    Enum _WSC_SCANNER_SETTINGS
    SCANNER_UNKNOWN = &H1
    SCANNER_RUNNING = &H16
End Enum
Enum _WSC_UPTODATE
    up_To_Date = &H0
    too_Old = &H10
End Enum

所以我有这个十六进制值: 61100,二进制是: 1100001000100000000,我希望我的输出是

WSC_SECURITY_PROVIDER_ANTIVIRUS + WSC_SECURITY_PROVIDER_AUTOUPDATE_SETTINGS +?+ up_To_Date

到现在为止,我只有这个,但它不能做我想要的

代码语言:javascript
复制
        Dim _security As _WSC_SECURITY_PROVIDER = hex.Substring(0, 2)
        Dim _scanner As _WSC_SCANNER_SETTINGS = hex.Substring(2, 2)
        Dim _uptodate As _WSC_UPTODATE = hex.Substring(4, 2)

        Console.WriteLine("_security={0}, _scanner={1}, _uptodate={2}",
                          _security,
                          _scanner,
                          _uptodate
                          )

我将非常感谢你的提示。

EN

回答 1

Stack Overflow用户

发布于 2016-10-31 19:13:35

如果您设计的枚举旨在表示标志,单个位,则枚举中的项应该是2的幂,十六进制16是3位。我创建了这个枚举作为一个模板,这样我就不需要输入很多东西了。只需更改名称即可。

代码语言:javascript
复制
<FlagsAttribute()> _
Public Enum bit As Integer
    none = 0
    s0 = 1 << 0
    s1 = 1 << 1
    s2 = 1 << 2
    s3 = 1 << 3
    s4 = 1 << 4
    s5 = 1 << 5
    s6 = 1 << 6
    s7 = 1 << 7
    s8 = 1 << 8
    s9 = 1 << 9
    s10 = 1 << 10
    s11 = 1 << 11
    s12 = 1 << 12
    s13 = 1 << 13
    s14 = 1 << 14
    s15 = 1 << 15
    s16 = 1 << 16
    s17 = 1 << 17
    s18 = 1 << 18
    s19 = 1 << 19
    s20 = 1 << 20
    s21 = 1 << 21
    s22 = 1 << 22
    s23 = 1 << 23
    s24 = 1 << 24
    s25 = 1 << 25
    s26 = 1 << 26
    s27 = 1 << 27
    s28 = 1 << 28
    s29 = 1 << 29
    s30 = 1 << 30
    all = -1
End Enum

通常我会注释掉不用的项目,但把它们留在原处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40340401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档