首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相等运算符==右侧的位操作符^不按预期工作

相等运算符==右侧的位操作符^不按预期工作
EN

Stack Overflow用户
提问于 2021-08-02 13:53:19
回答 1查看 74关注 0票数 2

代码片段:

代码语言:javascript
复制
void fn(){
    if(14-2==0^2){
        cout<<"14-2 is "<<14-2<<"\n";
        cout<<"0^2 is "<<(0^2)<<"\n";  //cout<<0^2 shows error: invalid operands of types 'int' and 'const char [2]' to binary 'operator<<'
        cout<<"How is if evaluated to be true?";
    }
    else{
        cout<<"else";
    }
}

输出:

14-2是12

0^2等于2

如果求值为真,如何计算?

我将0^2括在()内,从而解决了这个问题,因此如果条件变为

代码语言:javascript
复制
if(14-2==(0^2))

现在这一切都是按预期进行的。

问题:我想知道为什么如果评估是正确的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-02 13:57:38

来自优先

代码语言:javascript
复制
14 - 2 == 0 ^ 2

被解析为

代码语言:javascript
复制
((14 - 2) == 0) ^ 2

所以(12 == 0) ^ 2

所以false ^ 2

so 2 (so true)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68622804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档