c++中的"^"符号问题—幂运算符与异或位运算符

今天在leetcode刷题时遇到求解2^31次方问题,于是使用int x=2^31;来计算,发现答案一直报错(2024/2032),不明其原因,经过测试代码后发现是"^"符号误用的问题。
原来在c++编译器中"^"符号不是幂运算符,而是异或位运算符,经过手动异或计算发现确实如此。
c++中的幂运算应使用pow()函数进行。
此乃题目之大坑,以后需留心,特此记录,以表警示!

#include <iostream>
using namespace std;
#include <string>
#include <math.h>

int main()
{
    int x = 2 ^ 10;
    int y = 2 ^ (10);
    int z = (2 ^ (10));
    int a = 2 ^ 3;
    cout << "x=" << x << endl;
    cout << "y=" << y << endl;
    cout << "z=" << z << endl;
    cout << "a=" << a << endl;
}

图片说明

全部评论

相关推荐

点赞 评论 收藏
分享
03-29 15:34
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司8个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务