short sho1, sho2; printf("Enter two shorts.n"); scanf("%hd %hd", &sho1, &sho2); printf("%hd^%hd is %hd.n", sho1, sho2, sho1^sho2);
当我输入’2 2’时,我得到这个输出:
2 ^ 2是0。
怎么会? 我在Eclipse中使用MinGW GCC编译器,以防万一。
^
不是C中的数学幂运算符,它是按位异或运算符 。 你可能想要powfunction ,它需要两个双打。
您没有使用您认为正在使用的运算符。
^
是按位XOR运算符 。
您正在寻找powfunction 。
原型:双粉(双b,双p);
头文件:math.h(C)或cmath(C ++)
说明:此函数将b提升为p幂。
维基百科有一个有用的 C和C ++ 运算符列表 。
C中没有“幂”运算符 – ^是XOR(按位异或)运算符
^
运算符不是幂运算符; 它是按位XOR运算符。 对于幂运算符,您希望使用math.h
声明的函数pow
。 从而:
pow(2.0, 2.0)
将返回4.0
(故意强调参数和返回值是双倍的)。
请注意, pow
返回一个double,因此您必须将格式说明符更改为%g
:
printf("%hd^%hd is %g.n", sho1, sho2, pow((double)sho1, (double)sho2));
你可以在C中使用pow()函数。
pow(base, exponent);
它在math.h头文件中。
在c ^
,是独占或运算符。 为了做权力,你必须使用pow
function。
pow(2,2)
以上就是c/c++开发分享数学能力运算符未按预期工作相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/518762.html