c - 这些位掩码之间的区别

标签 c binary bitwise-operators

我想知道下面的位掩码有什么区别,以及您可以在什么场景下使用。

int a  = 1;
int b  = 2;
int c  = 4;
int d  = 8;


int letters = a | b | d; 

int aviableLettersMask = //input some letter;  


if (letters & aviableLettersMask)
{

}

if ((letters & ~aviableLettersMask) == 0)
{

}

谢谢

最佳答案

区别如下:

第一次检查 aviableLettersMask 中是否有任何字母出现在 letters

第二个 - 如果 aviableLettersMask 中不存在其他字母。

关于c - 这些位掩码之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459150/

相关文章:

java - C 等同于 Java 中的 Arrays.sort - qsort? (我如何找到其实现的性质)

c - C 中的动态数组

python - 使用Python将整数转换为二进制

c - 取 C 中半字节的最后 2 位

language-agnostic - 使用按位运算符检查整数是否为 2^1-2^j 形式的单行代码

c - 错误 : storage size of 'c' isn't known

c - 为什么在写入使用字符串初始化的 "char *s"时会出现段错误,而不是 "char s[]"?

.Net 序列化 - 将 [Serializable] 与继承树中的自定义混合

c - 从二进制读取并存放在双字符数组上

c - 术语和代码行的平等