等价的C函数,不同的结果

等价的C函数,不同的结果,c,C,我有一个非常简单的C程序,包括以下函数: int digit(int num) { return num/(10*10*10); } 呼叫数字(2345)返回2-如预期 但是,如果我用以下方式编写函数(我认为这是等效的!!): 然后打电话给digit2(2345),这将返回260!!! ... 这对我来说简直是疯了!!! 在每种情况下,我都使用以下参数进行编译: gcc-std=c99-墙壁-Wextra-Wpedantic-Werror 这到底是怎么回事 10^3表示10异或3,而

我有一个非常简单的C程序,包括以下函数:

int digit(int num)
{ 
    return num/(10*10*10);
}
呼叫数字(2345)返回2-如预期

但是,如果我用以下方式编写函数(我认为这是等效的!!):

然后打电话给digit2(2345),这将返回260!!! ... 这对我来说简直是疯了!!! 在每种情况下,我都使用以下参数进行编译: gcc-std=c99-墙壁-Wextra-Wpedantic-Werror

这到底是怎么回事

10^3
表示10异或3,而不是10的幂3

要将数字提高到某个幂,请使用from
math.h
。虽然在你的例子中,这可能有点过分了,因为pow足够复杂,可以将浮点数提升为浮点数,但你可以将数字本身相乘。

10^3
表示10或3,而不是10乘以3


要将数字提高到某个幂,请使用from
math.h
。虽然在您的情况下,这可能是杀伤力过大,因为
pow
足够复杂,可以将浮动提升到浮动功率,但是你可以把数字本身相乘。

10^3意味着异或-你需要
pow
函数-请看10^3意味着异或-你需要
pow
函数-请看
10^3
意味着
10 xor 3
,也就是
9
。我如何将一个数字提高到C的X的幂?
10^3
意味着
10 xor 3
,这是
9
。如何将数字提高到C中X的幂?这是大学作业,我不允许导入库,因此我不能使用pow函数。。。不可能简单地使用10*10*10。。。我怎样才能得到10乘以x在C中的幂的结果呢?python中不是有一些操作符与^等价吗?@staid\u progress,好吧,python的power操作符是
**
,而不是
^
:最后一个仍然代表XOR。在C语言中,你可以自己乘以一个数字,或者使用pow,或者自己编写一个算法。这是大学作业,我不允许导入库,所以我不能使用pow函数。。。不可能简单地使用10*10*10。。。我怎样才能得到10乘以x在C中的幂的结果呢?python中不是有一些操作符与^等价吗?@staid\u progress,好吧,python的power操作符是
**
,而不是
^
:最后一个仍然代表XOR。在C语言中,你可以将一个数字本身相乘,或者使用
pow
,或者自己编写一个算法。
int digit2(int num)
{ 
    return num/(10^3);
}