Я запутался в битовых масках, битовых флагах и других "битовых" вещах.У меня есть список кодов ошибок - например, [102, 104, 108, 80000000, 8000000, 10000000, 1000000, 0x0008000, ....]
.Часть из них записывается в системные журналы, как битовые флаги, например «67108864» (а часть из них нет, и возвращают нормальные числа).Мне нужно сопоставить их, но я не могу найти ни одного алгоритма.Как я могу это сделать?Может быть, он используется только для кодов типа «0x0008000»?Если это правда, как определить, что из этого?
Проблема глубже.Я не понимаю байтовые флаги.Я понимаю, что флаги обычно используются для логических состояний, но здесь регистрируются коды состояния.Например, 102 - это (1100110) 2.Флаг байта для этого числа равен 2 + 4 + 32 + 64 ... Я так преобразовываю int в двоичную форму, и он, очевидно, равен 102. Так что я в замешательстве.
Спасибо за ваше время!