gpt4 book ai didi

c - C中的逻辑运算符有什么意义?

转载 作者:太空狗 更新时间:2023-10-29 17:27:10 25 4
gpt4 key购买 nike

我只是想知道 C 中是否有 XOR 逻辑运算符(类似于 && 用于 AND 但用于 XOR)。我知道我可以将 XOR 拆分为 AND、NOT 和 OR,但简单的 XOR 会好得多。然后我想到,如果我在两个条件之间使用普通的 XOR 按位运算符,它可能会起作用。在我的测试中确实如此。

考虑:

int i = 3;
int j = 7;
int k = 8;

只是为了这个相当愚蠢的例子,如果我需要 k 大于 i 或大于 j 但不是两者,XOR 都会非常方便。

if ((k > i) XOR (k > j))
printf("Valid");
else
printf("Invalid");

printf("%s",((k > i) XOR (k > j)) ? "Valid" : "Invalid");

我将按位异或 ^ 并生成“无效”。将两次比较的结果放在两个整数中导致 2 个整数包含 1,因此 XOR 产生错误。然后我用 & 和 | 试了一下按位运算符和都给出了预期的结果。知道真条件具有非零值,而假条件具有零值,所有这些都是有道理的。

我想知道,是否有理由使用逻辑 && 和 ||当位运算符 &, |和 ^ 工作一样吗?

最佳答案

你不需要逻辑异或,SO问题我忘记了,不过跟你想的差不多,基本上我们不需要异或,反正等同于!=

FALSE XOR FALSE == FALSE
FALSE XOR TRUE == TRUE
TRUE XOR FALSE == TRUE
TRUE XOR TRUE == FALSE


FALSE != FALSE == FALSE
FALSE != TRUE == TRUE
TRUE != FALSE == TRUE
TRUE != TRUE == FALSE

我会搜索我的收藏夹,稍后将链接粘贴在这里...

关于c - C中的逻辑运算符有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2773186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com