c/c++语言开发共享数学能力运算符未按预期工作

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 ^ ,是独占或运算符。 为了做权力,你必须使用powfunction。

    pow(2,2)

      以上就是c/c++开发分享数学能力运算符未按预期工作相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/518762.html

      (0)
      上一篇 2020年12月4日
      下一篇 2020年12月4日

      精彩推荐