Необходимо отобразить перечисление битов, таких как бит 0 указывает на ошибку 1, бит 1 указывает на ошибку2, с двоичной последовательностью int в C - PullRequest
0 голосов
/ 28 июля 2011

Необходимо отобразить перечисление битов, таких как (ошибка - это, в основном, некоторая строка), бит 0 указывает на ошибку 1, бит 1 указывает на ошибку 2, бит 2 указывает на ошибку 3,.,,,бит n указывает на ошибку n

десятичное значение, например, int int = 283192 или любое другое значение.

Я попытался преобразовать 283192 = 1000101001000111000.

Нужна помощь, чтобы отобразить эту последовательностьс указанным выше перечислением с использованием C.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Как это?

enum bad_errorcode {
  BADERR_NOBITS = 0,
  BADERR_BITONE = 1 << 0,
  BADERR_BITTWO = 1 << 1,
  BADERR_BITTHREE = 1 << 2,
  BADERR_BITFOUR = 1 << 3,
  /* ... */
};
1 голос
/ 28 июля 2011

Не уверен, что вы говорите об этом, но это способ указать, какие биты установлены:

unsigned int bitmap = value;
unsigned int i = 1;
while (bitmap) {
    if (bitmap & 1) {
        printf("Error number %i\n", i);
    }
    bitmap >>= 1;
    ++i;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...