系统相关
首页 > 系统相关> > linux C 位运算,flags1 & flags2 任意一位不同就是 0 吗?

linux C 位运算,flags1 & flags2 任意一位不同就是 0 吗?

作者:互联网

在 C 语言中,位运算符 & 用于逐位与操作。如果 flags1 和 flags2 的任意一位不同,flags1 & flags2 的结果不一定是 0。只有当 flags1 和 flags2 在每一个对应的位上都是 1 时,结果才会是那一位为 1;否则,该位的结果为 0。

如果你想判断 flags1 和 flags2 任意一位是否不同,可以使用异或运算符 ^,其操作如下:

if (flags1 ^ flags2) {
    // flags1 和 flags2 至少有一位不同
}

C

这里的 flags1 ^ flags2 会返回一个数字,如果这个数字不为0,说明 flags1 和 flags2 之间有至少一位不同。

标签:
来源: