将错误状态代码中的字节标志转换为int

问题描述 投票:-2回答:1

我对bitmasks,bitflags和其他“bit”内容感到困惑。我有一个错误代码列表 - 如[102, 104, 108, 80000000, 8000000, 10000000, 1000000, 0x0008000, ....]。它的一部分写在系统日志中,如bitflags,f.e。 “67108864”(其中一部分没有,并返回正常数字)。我需要匹配它们,但我找不到任何算法。我怎么能这样做?也许它只用于像“0x0008000”这样的代码?如果是真的如何定义这是哪一个?

问题更深层次。我不明白字节标志。我理解标志通常用于布尔状态,但这里是记录的状态代码。例如,102是(1100110)2。该数字的字节标志是2 + 4 + 32 + 64 ...这是我如何将int转换为二进制形式,它显然等于102.所以我很困惑。

谢谢你的时间!

math binary byte flags bitflags
1个回答
0
投票

你必须分开

  • 编号的错误/消息代码(通常在某些范围内的值,如101, 102, 103...或某些范围) - 它们只是指定发生了什么错误,此错误(如“找不到文件”)是完全限定的(至少消息创建者相信:) )
  • 包含一组标志的代码(通常以十六进制或二进制表示法编写,如果可用的话) - 它们给我们提供详细信息,每一位都包含一条信息。
© www.soinside.com 2019 - 2024. All rights reserved.