从我的代码的一行输出
double _double = pow(((15) ^ 17)/11 ^ 1.5,2)/9.8;
当我尝试编译它时,它返回错误:无效的操作数到二进制表达式(' double'和' double') 我认为15 ^ 17和11 ^ 1.5都会加倍,为什么它给了我这个错误?
答案 0 :(得分:1)
您无法使用XOR
(^
)操作两个双打。它仅适用于int
,long
,bool
,short
,char
及其变体。没有浮点数据类型。
答案 1 :(得分:0)
编译器会给您一个错误,因为C ++中的^
没有按照您的想法执行。它是一个XOR运算符,而不是幂运算符,它只适用于整数数据类型。例如,15 ^ 17
为30
:
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
一样使用{。}}。