c - C中位掩码和位图有什么区别

标签 c

它们之间的概念区别是什么?我知道位图是结构中的位字段..

struct{
    int bit1: 1;
    int bit2: 1;
    int bit3: 1;
  };
那么在这种情况下,位掩码是我们为枚举定义的东西吗?

最佳答案

位掩码是一种整数类型,用于在执行按位运算时“屏蔽”某些位。例如,位掩码 0xFFFFFFFF可能用于屏蔽 32 位无符号值,因为您想一次对所有位进行操作,而 0x00000001只会在最后一位操作。您经常会看到定义为“翻转”版本的位掩码,然后使用 ~ 进行翻转。 .

另一方面,位图是一组变量,每个变量都映射到一个单独的位。有很多方法可以实现这一点,您的结构是位图的一个(常见)示例。

您可能会在枚举中放置各种掩码,以便您更轻松地访问它们,但这并不是绝对必要的。

关于c - C中位掩码和位图有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9728102/

相关文章:

c++ - asm.js 规范中提到的 c/c++ 虚拟机是什么

c - 给出虚假值(value)的宏观方程?

c - 这个宏是否违反了严格的别名规则?

bash - 不要与 shell 本身共享从 shell 启动的进程的标准输入

c - 如何解决链接描述文件中的错误?

c - 提示如何早于 popen 调用的标准输出出现?

c - 下面代码中的 char 元素与十六进制数字相比如何?

c - 为什么我的查找 21 以内阶乘的 C 程序从 13 的阶乘开始产生无效结果?

c - 保存字符串反转

c++ - 对 pthreads 感到困惑