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

时间:2019-03-20 07:45:35

标签: math binary byte flags bitflags

我对位掩码,位标志和其他“位”东西感到困惑。 我有一个错误代码列表-例如list*。它的一部分写在系统日志中,例如位标志,例如“ 67108864”(部分不包含,并返回正常数字)。我需要匹配它们,但是找不到任何算法。我该怎么做?也许它仅用于“ 0x0008000”之类的代码?如果是这样,该如何定义?

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

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

您必须分开

  • 编号的错误/消息代码(通常为101, 102, 103...之类的值或某些范围之内的值)-它们只是指定发生了什么错误,该错误(如“找不到文件”)是完全合格(至少消息创建者认为:))

  • 包含标志集
  • 代码(通常以十六进制或二进制表示法,如果可用)书写-它们为我们提供了详细信息,每一位都包含一条信息。