需要映射位的枚举,如( error3基本上是某个字符串)位0表示错误1,位1表示error2,位2表示错误。。。。位n表示错误n
十进制值,如int value= 283192或任何其他值。
我尝试将283192 = 1000101001000111000转换为。
需要帮助如何使用C将此序列映射到上面的枚举。
提前感谢
发布于 2011-07-28 19:57:56
我不确定这就是你所说的,但这是一种指示设置了哪些位的方法:
unsigned int bitmap = value;
unsigned int i = 1;
while (bitmap) {
if (bitmap & 1) {
printf("Error number %i\n", i);
}
bitmap >>= 1;
++i;
}发布于 2011-07-28 20:24:06
是像这样吗?
enum bad_errorcode {
BADERR_NOBITS = 0,
BADERR_BITONE = 1 << 0,
BADERR_BITTWO = 1 << 1,
BADERR_BITTHREE = 1 << 2,
BADERR_BITFOUR = 1 << 3,
/* ... */
};https://stackoverflow.com/questions/6858328
复制相似问题