gpt4 book ai didi

c - AND 和 OR 运算符 c

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:30 25 4
gpt4 key购买 nike

嘿,我正在写代码,我卡在了这个 if 条件里面 (不是为了更好地理解而简化的实际代码)

if(18&2==2)
do something;

如果条件没有执行但是如果我这样写

if(18|2==18)
do something;

正常执行

也是当我,

printf("%d",18&2);

现在它给出了 2 我很困惑为什么上面的 if 语句没有执行,是不是因为优先,请解释谢谢。

最佳答案

你的是 precedence “错误”。按位运算符的优先级低于相等性。将18 & 2 == 2变成18 & (2 == 2),即18 & 1。最后一个显然计算为 0,因为 18 可以被 2 整除。

在这种情况下,当您得到“奇怪的结果”时。首先添加括号以确保每个运算符都对您期望的操作数进行运算。

关于c - AND 和 OR 运算符 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364233/

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