我有一个非常简单的C程序,由以下函数组成:
int digit(int num)
{
return num/(10*10*10);
}
呼叫数字(2345)返回2 - 正如预期的那样。
但是,如果我按以下方式编写函数(在我看来 - 相当于!!):
int digit2(int num)
{
return num/(10^3);
}
然后拨打digit2(2345),这回复260! ...这对我来说似乎完全疯了! 我在每种情况下使用以下参数进行编译: gcc -std = c99 -Wall -Wextra -Wpedantic -Werror
这到底是怎么回事??? !!!!!
答案 0 :(得分:3)
10^3
表示 10 XOR 3 ,而 10表示电源3 。
要将某个数字提升到某个数字,请使用math.h
中的pow(number, power)
。虽然在你的情况下,这可能有点过分,因为pow
足够复杂,可以将浮点数提升到浮点数,但你可以将数字乘以它自己。
答案 1 :(得分:1)
10 ^ 3表示xor - 您需要pow
函数 - 请参阅https://linux.die.net/man/3/pow