错误有什么问题:二进制表达式的操作数无效(' double'和' double')

时间:2015-10-13 18:45:29

标签: c++

从我的代码的一行输出

double _double = pow(((15) ^ 17)/11 ^ 1.5,2)/9.8;

当我尝试编译它时,它返回错误:无效的操作数到二进制表达式(' double'和' double') 我认为15 ^ 17和11 ^ 1.5都会加倍,为什么它给了我这个错误?

3 个答案:

答案 0 :(得分:1)

您无法使用XOR^)操作两个双打。它仅适用于intlongboolshortchar及其变体。没有浮点数据类型。

答案 1 :(得分:0)

编译器会给您一个错误,因为C ++中的^没有按照您的想法执行。它是一个XOR运算符,而不是幂运算符,它只适用于整数数据类型。例如,15 ^ 1730

    01111 // 15
XOR 10001 // 17
---------
    11110 // 30

事实上,C ++完全缺乏电源运营商。您应该使用std::pow(double,double)代替:

double _double = pow(pow(15, 17)/pow(11, 1.5), 2)/9.8;

答案 2 :(得分:0)

double _double = pow(((15) ^ 17)/11 ^ 1.5,2)/9.8;

^运算符是逻辑独占或运算符。

要对数字进行取幂,请像使用pow一样使用{。}}。