C ++计算错误

问题描述 投票:0回答:1

我有一个莫名其妙的问题。这是我的代码:

int result;
result = 0 * 2 ^ 1;
std::cout << result << std::endl;

此计算的结果为1。但是为什么呢?实际上应该是0,不是吗?我已经使用数学库的pow函数进行过尝试,但结果也为1。

感谢您提供所有答案!

c++
1个回答
4
投票

在C ++和许多其他计算机编程语言中,^表示XOR not的权力。因此,它可能没有数学所期望的优先。

使用std::pow作为指数。

但是,由于std::pow是一个函数调用,它也可能不会按照您的意思与数学表达式进行交互。

最终,应该使用括号使意图清楚,并记住零乘以零就是零。

© www.soinside.com 2019 - 2024. All rights reserved.