我是C的新手
我试图把某些东西放到某种东西的力量上
例如.5 ^ 3 = 125;
但是当我编码
#include <math.h>
...
printf("%d", 5^3);
Run Code Online (Sandbox Code Playgroud)
我得到6.我做了一些根本错误的事情?
Nab*_*bla 17
^ 是C中的按位XOR运算符.
5是101二进制表示,3是011.所以101 XOR 011 = 110,这是6十进制的.
你想要的是什么pow(5,3)(可以math.h像你一样包括在内).但请注意,它对双精度而非整数起作用,因此返回值将是浮点数,通常不精确.如果需要精确的整数取幂,则必须使用其他库或实现自己的幂函数.这并不难,因为算法通过平方看取幂.标准C不包括整数取幂的函数.无论如何,使用整数求幂,处理溢出很重要,溢出可能已经发生在小输入值上.
另外,要打印返回的double,您必须将double转换为int printf("%d", (int)pow(5,3))或将其作为浮点打印printf("%f", pow(5,3))
| 归档时间: |
|
| 查看次数: |
61533 次 |
| 最近记录: |