首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要映射比特的枚举,比特0表示错误1,比特1表示error2,在C中使用int二进制序列

需要映射比特的枚举,比特0表示错误1,比特1表示error2,在C中使用int二进制序列
EN

Stack Overflow用户
提问于 2011-07-28 19:40:30
回答 2查看 145关注 0票数 0

需要映射位的枚举,如( error3基本上是某个字符串)位0表示错误1,位1表示error2,位2表示错误。。。。位n表示错误n

十进制值,如int value= 283192或任何其他值。

我尝试将283192 = 1000101001000111000转换为。

需要帮助如何使用C将此序列映射到上面的枚举。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2011-07-28 19:57:56

我不确定这就是你所说的,但这是一种指示设置了哪些位的方法:

代码语言:javascript
复制
unsigned int bitmap = value;
unsigned int i = 1;
while (bitmap) {
    if (bitmap & 1) {
        printf("Error number %i\n", i);
    }
    bitmap >>= 1;
    ++i;
}
票数 1
EN

Stack Overflow用户

发布于 2011-07-28 20:24:06

是像这样吗?

代码语言:javascript
复制
enum bad_errorcode {
  BADERR_NOBITS = 0,
  BADERR_BITONE = 1 << 0,
  BADERR_BITTWO = 1 << 1,
  BADERR_BITTHREE = 1 << 2,
  BADERR_BITFOUR = 1 << 3,
  /* ... */
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6858328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档