需要映射枚举位(错误基本上是一些字符串) 位0表示错误1, 位1表示错误2, 第2位表示error3, 。 。 。 。 位n表示错误n
十进制值,如int value = 283192或任何其他值。
我尝试转换283192 = 1000101001000111000。
需要帮助如何使用C。
将此序列与上面的枚举映射提前致谢
答案 0 :(得分:1)
不确定这是你在说什么,但这是一种表明设置了哪些位的方法:
unsigned int bitmap = value;
unsigned int i = 1;
while (bitmap) {
if (bitmap & 1) {
printf("Error number %i\n", i);
}
bitmap >>= 1;
++i;
}
答案 1 :(得分:1)
喜欢这个吗?
enum bad_errorcode {
BADERR_NOBITS = 0,
BADERR_BITONE = 1 << 0,
BADERR_BITTWO = 1 << 1,
BADERR_BITTHREE = 1 << 2,
BADERR_BITFOUR = 1 << 3,
/* ... */
};